{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "colab": {
      "name": "05_transfer_learning_in_tensorflow_part_2_fine_tuning.ipynb",
      "provenance": [],
      "collapsed_sections": [],
      "mount_file_id": "1alsWE48suOuUXaoAJQpo3-kuU2UJYXKR",
      "authorship_tag": "ABX9TyMMFgxmkNa4Z/cys6NlSRQZ",
      "include_colab_link": true
    },
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3"
    },
    "accelerator": "GPU"
  },
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "view-in-github",
        "colab_type": "text"
      },
      "source": [
        "<a href=\"https://colab.research.google.com/github/mrdbourke/tensorflow-deep-learning/blob/main/05_transfer_learning_in_tensorflow_part_2_fine_tuning.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "UTWetPM7AWfY"
      },
      "source": [
        "# Transfer Learning with TensorFlow Part 2: Fine-tuning\n",
        "\n",
        "In the previous section, we saw how we could leverage feature extraction transfer learning to get far better results on our Food Vision project than building our own models (even with less data).\n",
        "\n",
        "Now we're going to cover another type of transfer learning: fine-tuning.\n",
        "\n",
        "In **fine-tuning transfer learning** the pre-trained model weights from another model are unfrozen and tweaked during to better suit your own data.\n",
        "\n",
        "For feature extraction transfer learning, you may only train the top 1-3 layers of a pre-trained model with your own data, in fine-tuning transfer learning, you might train 1-3+ layers of a pre-trained model (where the '+' indicates that many or all of the layers could be trained).\n",
        "\n",
        "![](https://raw.githubusercontent.com/mrdbourke/tensorflow-deep-learning/main/images/05-transfer-learning-feature-extraction-vs-fine-tuning.png)\n",
        "*Feature extraction transfer learning vs. fine-tuning transfer learning. The main difference between the two is that in fine-tuning, more layers of the pre-trained model get unfrozen and tuned on custom data. This fine-tuning usually takes more data than feature extraction to be effective.*\n",
        "\n",
        "## What we're going to cover\n",
        "\n",
        "We're going to go through the follow with TensorFlow:\n",
        "\n",
        "- Introduce fine-tuning, a type of transfer learning to modify a pre-trained model to be more suited to your data\n",
        "- Using the Keras Functional API (a different way to build models in Keras)\n",
        "- Using a smaller dataset to experiment faster (e.g. 1-10% of training samples of 10 classes of food)\n",
        "- Data augmentation (how to make your training dataset more diverse without adding more data)\n",
        "- Running a series of modelling experiments on our Food Vision data\n",
        "  - Model 0: a transfer learning model using the Keras Functional API\n",
        "  - Model 1: a feature extraction transfer learning model on 1% of the data with data augmentation\n",
        "  - Model 2: a feature extraction transfer learning model on 10% of the data with data augmentation\n",
        "  - Model 3: a fine-tuned transfer learning model on 10% of the data\n",
        "  - Model 4: a fine-tuned transfer learning model on 100% of the data\n",
        "- Introduce the ModelCheckpoint callback to save intermediate training results\n",
        "- Compare model experiments results using TensorBoard\n",
        "\n",
        "## How you can use this notebook\n",
        "\n",
        "You can read through the descriptions and the code (it should all run, except for the cells which error on purpose), but there's a better option.\n",
        "\n",
        "Write all of the code yourself.\n",
        "\n",
        "Yes. I'm serious. Create a new notebook, and rewrite each line by yourself. Investigate it, see if you can break it, why does it break?\n",
        "\n",
        "You don't have to write the text descriptions but writing the code yourself is a great way to get hands-on experience.\n",
        "\n",
        "Don't worry if you make mistakes, we all do. The way to get better and make less mistakes is to **write more code**."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "Nq4kxIpQMpZT",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "8248e560-36dc-4570-ceac-a962b6151cad"
      },
      "source": [
        "# Are we using a GPU? (if not & you're using Google Colab, go to Runtime -> Change Runtime Type -> Harware Accelerator: GPU )\n",
        "!nvidia-smi"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Tue Feb 16 02:14:29 2021       \n",
            "+-----------------------------------------------------------------------------+\n",
            "| NVIDIA-SMI 460.39       Driver Version: 460.32.03    CUDA Version: 11.2     |\n",
            "|-------------------------------+----------------------+----------------------+\n",
            "| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |\n",
            "| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |\n",
            "|                               |                      |               MIG M. |\n",
            "|===============================+======================+======================|\n",
            "|   0  Tesla T4            Off  | 00000000:00:04.0 Off |                    0 |\n",
            "| N/A   73C    P8    13W /  70W |      0MiB / 15109MiB |      0%      Default |\n",
            "|                               |                      |                  N/A |\n",
            "+-------------------------------+----------------------+----------------------+\n",
            "                                                                               \n",
            "+-----------------------------------------------------------------------------+\n",
            "| Processes:                                                                  |\n",
            "|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |\n",
            "|        ID   ID                                                   Usage      |\n",
            "|=============================================================================|\n",
            "|  No running processes found                                                 |\n",
            "+-----------------------------------------------------------------------------+\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "P_t7iZxXvlZ9"
      },
      "source": [
        "## Creating helper functions\n",
        "\n",
        "Throughout your machine learning experiments, you'll likely come across snippets of code you want to use over and over again.\n",
        "\n",
        "For example, a plotting function which plots a model's `history` object (see `plot_loss_curves()` below).\n",
        "\n",
        "You could recreate these functions over and over again.\n",
        "\n",
        "But as you might've guessed, rewritting the same functions becomes tedious.\n",
        "\n",
        "One of the solutions is to store them in a helper script such as [`helper_functions.py`](https://github.com/mrdbourke/tensorflow-deep-learning/blob/main/extras/helper_functions.py). And then import the necesary functionality when you need it.\n",
        "\n",
        "For example, you might write:\n",
        "\n",
        "```\n",
        "from helper_functions import plot_loss_curves\n",
        "\n",
        "...\n",
        "\n",
        "plot_loss_curves(history)\n",
        "```\n",
        "\n",
        "Let's see what this looks like."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "wEuiAtXkhsJM",
        "outputId": "c2ca862e-a4f8-4bd4-8a24-f015df35742e"
      },
      "source": [
        "# Get helper_functions.py script from course GitHub\n",
        "!wget https://raw.githubusercontent.com/mrdbourke/tensorflow-deep-learning/main/extras/helper_functions.py \n",
        "\n",
        "# Import helper functions we're going to use\n",
        "from helper_functions import create_tensorboard_callback, plot_loss_curves, unzip_data, walk_through_dir"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "--2021-02-16 02:14:32--  https://raw.githubusercontent.com/mrdbourke/tensorflow-deep-learning/main/extras/helper_functions.py\n",
            "Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.111.133, 185.199.108.133, 185.199.109.133, ...\n",
            "Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.111.133|:443... connected.\n",
            "HTTP request sent, awaiting response... 200 OK\n",
            "Length: 9373 (9.2K) [text/plain]\n",
            "Saving to: ‘helper_functions.py.1’\n",
            "\n",
            "\rhelper_functions.py   0%[                    ]       0  --.-KB/s               \rhelper_functions.py 100%[===================>]   9.15K  --.-KB/s    in 0s      \n",
            "\n",
            "2021-02-16 02:14:32 (99.6 MB/s) - ‘helper_functions.py.1’ saved [9373/9373]\n",
            "\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "AZUvqGMxizYc"
      },
      "source": [
        "Wonderful, now we've got a bunch of helper functions we can use throughout the notebook without having to rewrite them from scratch each time.\n",
        "\n",
        "> 🔑 **Note:** If you're running this notebook in Google Colab, when it times out Colab will delete the `helper_functions.py` file. So to use the functions imported above, you'll have to rerun the cell."
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "TWemvyC2pv3T"
      },
      "source": [
        "# 10 Food Classes: Working with less data\n",
        "\n",
        "We saw in the [previous notebook](https://github.com/mrdbourke/tensorflow-deep-learning/blob/main/04_transfer_learning_in_tensorflow_part_1_feature_extraction.ipynb) that we could get great results with only 10% of the training data using transfer learning with TensorFlow Hub.\n",
        "\n",
        "In this notebook, we're going to continue to work with smaller subsets of the data, except this time we'll have a look at how we can use the in-built pretrained models within the `tf.keras.applications` module as well as how to fine-tune them to our own custom dataset.\n",
        "\n",
        "We'll also practice using a new but similar dataloader function to what we've used before, [`image_dataset_from_directory()`](https://www.tensorflow.org/api_docs/python/tf/keras/preprocessing/image_dataset_from_directory) which is part of the [`tf.keras.preprocessing`](https://www.tensorflow.org/api_docs/python/tf/keras/preprocessing) module.\n",
        "\n",
        "Finally, we'll also be practicing using the [Keras Functional API](https://keras.io/guides/functional_api/) for building deep learning models. The Functional API is a more flexible way to create models than the tf.keras.Sequential API.\n",
        "\n",
        "We'll explore each of these in more detail as we go.\n",
        "\n",
        "Let's start by downloading some data."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "P7m6pjH0JTyJ",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "1877d951-5772-4d4a-9b2c-e1b35713cb28"
      },
      "source": [
        "# Get 10% of the data of the 10 classes\n",
        "!wget https://storage.googleapis.com/ztm_tf_course/food_vision/10_food_classes_10_percent.zip \n",
        "\n",
        "unzip_data(\"10_food_classes_10_percent.zip\")"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "--2021-02-16 02:14:53--  https://storage.googleapis.com/ztm_tf_course/food_vision/10_food_classes_10_percent.zip\n",
            "Resolving storage.googleapis.com (storage.googleapis.com)... 172.217.12.240, 172.217.15.112, 172.253.62.128, ...\n",
            "Connecting to storage.googleapis.com (storage.googleapis.com)|172.217.12.240|:443... connected.\n",
            "HTTP request sent, awaiting response... 200 OK\n",
            "Length: 168546183 (161M) [application/zip]\n",
            "Saving to: ‘10_food_classes_10_percent.zip.1’\n",
            "\n",
            "10_food_classes_10_ 100%[===================>] 160.74M   186MB/s    in 0.9s    \n",
            "\n",
            "2021-02-16 02:14:54 (186 MB/s) - ‘10_food_classes_10_percent.zip.1’ saved [168546183/168546183]\n",
            "\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "fknY0DqM14EO"
      },
      "source": [
        "The dataset we're downloading is the 10 food classes dataset (from Food 101) with 10% of the training images we used in the previous notebook.\n",
        "\n",
        "> 🔑 **Note:** You can see how this dataset was created in the [image data modification notebook](https://github.com/mrdbourke/tensorflow-deep-learning/blob/main/extras/image_data_modification.ipynb).\n",
        "\n"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "8IHQ3i9s2lRm",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "4311188c-1d7c-4716-b7dd-04305dc5de96"
      },
      "source": [
        "# Walk through 10 percent data directory and list number of files\n",
        "walk_through_dir(\"10_food_classes_10_percent\")"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "There are 2 directories and 0 images in '10_food_classes_10_percent'.\n",
            "There are 10 directories and 0 images in '10_food_classes_10_percent/train'.\n",
            "There are 0 directories and 75 images in '10_food_classes_10_percent/train/ice_cream'.\n",
            "There are 0 directories and 75 images in '10_food_classes_10_percent/train/ramen'.\n",
            "There are 0 directories and 75 images in '10_food_classes_10_percent/train/chicken_wings'.\n",
            "There are 0 directories and 75 images in '10_food_classes_10_percent/train/pizza'.\n",
            "There are 0 directories and 75 images in '10_food_classes_10_percent/train/steak'.\n",
            "There are 0 directories and 75 images in '10_food_classes_10_percent/train/fried_rice'.\n",
            "There are 0 directories and 75 images in '10_food_classes_10_percent/train/hamburger'.\n",
            "There are 0 directories and 75 images in '10_food_classes_10_percent/train/grilled_salmon'.\n",
            "There are 0 directories and 75 images in '10_food_classes_10_percent/train/sushi'.\n",
            "There are 0 directories and 75 images in '10_food_classes_10_percent/train/chicken_curry'.\n",
            "There are 10 directories and 0 images in '10_food_classes_10_percent/test'.\n",
            "There are 0 directories and 250 images in '10_food_classes_10_percent/test/ice_cream'.\n",
            "There are 0 directories and 250 images in '10_food_classes_10_percent/test/ramen'.\n",
            "There are 0 directories and 250 images in '10_food_classes_10_percent/test/chicken_wings'.\n",
            "There are 0 directories and 250 images in '10_food_classes_10_percent/test/pizza'.\n",
            "There are 0 directories and 250 images in '10_food_classes_10_percent/test/steak'.\n",
            "There are 0 directories and 250 images in '10_food_classes_10_percent/test/fried_rice'.\n",
            "There are 0 directories and 250 images in '10_food_classes_10_percent/test/hamburger'.\n",
            "There are 0 directories and 250 images in '10_food_classes_10_percent/test/grilled_salmon'.\n",
            "There are 0 directories and 250 images in '10_food_classes_10_percent/test/sushi'.\n",
            "There are 0 directories and 250 images in '10_food_classes_10_percent/test/chicken_curry'.\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "a4bhxd-z2Vov"
      },
      "source": [
        "We can see that each of the training directories contain 75 images and each of the testing directories contain 250 images.\n",
        "\n",
        "Let's define our training and test filepaths."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "tELTNwq6L43a"
      },
      "source": [
        "# Create training and test directories\n",
        "train_dir = \"10_food_classes_10_percent/train/\"\n",
        "test_dir = \"10_food_classes_10_percent/test/\""
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "vkEZyNnLzppR"
      },
      "source": [
        "Now we've got some image data, we need a way of loading it into a TensorFlow compatible format.\n",
        "\n",
        "Previously, we've used the [`ImageDataGenerator`](https://www.tensorflow.org/api_docs/python/tf/keras/preprocessing/image/ImageDataGenerator) class. And while this works well and is still very commonly used, this time we're going to use the `image_data_from_directory` function.\n",
        "\n",
        "It works much the same way as `ImageDataGenerator`'s `flow_from_directory` method meaning your images need to be in the following file format:\n",
        "\n",
        "```\n",
        "# Example of file structure\n",
        "10_food_classes_10_percent <- top level folder\n",
        "└───train <- training images\n",
        "│   └───pizza\n",
        "│   │   │   1008104.jpg\n",
        "│   │   │   1638227.jpg\n",
        "│   │   │   ...      \n",
        "│   └───steak\n",
        "│       │   1000205.jpg\n",
        "│       │   1647351.jpg\n",
        "│       │   ...\n",
        "│   \n",
        "└───test <- testing images\n",
        "│   └───pizza\n",
        "│   │   │   1001116.jpg\n",
        "│   │   │   1507019.jpg\n",
        "│   │   │   ...      \n",
        "│   └───steak\n",
        "│       │   100274.jpg\n",
        "│       │   1653815.jpg\n",
        "│       │   ...    \n",
        "```\n",
        "\n",
        "One of the main benefits of using [`tf.keras.prepreprocessing.image_dataset_from_directory()`](https://www.tensorflow.org/api_docs/python/tf/keras/preprocessing/image_dataset_from_directory) rather than `ImageDataGenerator` is that it creates a [`tf.data.Dataset`](https://www.tensorflow.org/api_docs/python/tf/data/Dataset) object rather than a generator. The main advantage of this is the `tf.data.Dataset` API is much more efficient (faster) than the `ImageDataGenerator` API which is paramount for larger datasets.\n",
        "\n",
        "Let's see it in action."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "QcBs8C5wJ0et",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "0dbce4fd-5b92-4eb3-8688-f4b1b5e0f22d"
      },
      "source": [
        "# Create data inputs\n",
        "import tensorflow as tf\n",
        "IMG_SIZE = (224, 224) # define image size\n",
        "train_data_10_percent = tf.keras.preprocessing.image_dataset_from_directory(directory=train_dir,\n",
        "                                                                            image_size=IMG_SIZE,\n",
        "                                                                            label_mode=\"categorical\", # what type are the labels?\n",
        "                                                                            batch_size=32) # batch_size is 32 by default, this is generally a good number\n",
        "test_data_10_percent = tf.keras.preprocessing.image_dataset_from_directory(directory=test_dir,\n",
        "                                                                           image_size=IMG_SIZE,\n",
        "                                                                           label_mode=\"categorical\")"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Found 750 files belonging to 10 classes.\n",
            "Found 2500 files belonging to 10 classes.\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "OaNOwJXu5Kms"
      },
      "source": [
        "Wonderful! Looks like our dataloaders have found the correct number of images for each dataset.\n",
        "\n",
        "For now, the main parameters we're concerned about in the `image_dataset_from_directory()` funtion are:\n",
        "* `directory` - the filepath of the target directory we're loading images in from.\n",
        "* `image_size` - the target size of the images we're going to load in (height, width).\n",
        "* `batch_size` - the batch size of the images we're going to load in. For example if the `batch_size` is 32 (the default), batches of 32 images and labels at a time will be passed to the model.\n",
        "\n",
        "There are more we could play around with if we needed to [in the `tf.keras.preprocessing` documentation](https://www.tensorflow.org/api_docs/python/tf/keras/preprocessing/image_dataset_from_directory).\n",
        "\n",
        "If we check the training data datatype we should see it as a `BatchDataset` with shapes relating to our data."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "a30VfDiv3ZGc",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "536f060f-a82a-4d76-ae6f-d2c48ac0464c"
      },
      "source": [
        "# Check the training data datatype\n",
        "train_data_10_percent"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "<BatchDataset shapes: ((None, 224, 224, 3), (None, 10)), types: (tf.float32, tf.float32)>"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 7
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "Y7p3h9nC6ZH1"
      },
      "source": [
        "In the above output:\n",
        "\n",
        "* `(None, 224, 224, 3)` refers to the tensor shape of our images where `None` is the batch size, `224` is the height (and width) and `3` is the color channels (red, green, blue).\n",
        "* `(None, 10)` refers to the tensor shape of the labels where `None` is the batch size and `10` is the number of possible labels (the 10 different food classes).\n",
        "* Both image tensors and labels are of the datatype `tf.float32`.\n",
        "\n",
        "The `batch_size` is `None` due to it only being used during model training. You can think of `None` as a placeholder waiting to be filled with the `batch_size` parameter from `image_dataset_from_directory()`.\n",
        "\n",
        "Another benefit of using the `tf.data.Dataset` API are the assosciated methods which come with it.\n",
        "\n",
        "For example, if we want to find the name of the classes we were working with, we could use the `class_names` attribute."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "9mRe2rnv7YdW",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "ada12547-900a-41a9-fc07-5c2a97e9f366"
      },
      "source": [
        "# Check out the class names of our dataset\n",
        "train_data_10_percent.class_names"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "['chicken_curry',\n",
              " 'chicken_wings',\n",
              " 'fried_rice',\n",
              " 'grilled_salmon',\n",
              " 'hamburger',\n",
              " 'ice_cream',\n",
              " 'pizza',\n",
              " 'ramen',\n",
              " 'steak',\n",
              " 'sushi']"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 8
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "c09o0KAr8SFM"
      },
      "source": [
        "Or if we wanted to see an example batch of data, we could use the `take()` method. "
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "cZ25UPow7q5K",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "1e1ec9b5-de59-4160-9b7c-b248a509696f"
      },
      "source": [
        "# See an example batch of data\n",
        "for images, labels in train_data_10_percent.take(1):\n",
        "  print(images, labels)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "tf.Tensor(\n",
            "[[[[1.00000000e+00 0.00000000e+00 3.10000000e+01]\n",
            "   [1.00000000e+00 0.00000000e+00 3.10000000e+01]\n",
            "   [1.00000000e+00 0.00000000e+00 3.10000000e+01]\n",
            "   ...\n",
            "   [1.00000000e+00 0.00000000e+00 3.10000000e+01]\n",
            "   [1.00000000e+00 0.00000000e+00 3.10000000e+01]\n",
            "   [1.00000000e+00 0.00000000e+00 3.10000000e+01]]\n",
            "\n",
            "  [[1.00000000e+00 0.00000000e+00 3.10000000e+01]\n",
            "   [1.00000000e+00 0.00000000e+00 3.10000000e+01]\n",
            "   [1.00000000e+00 0.00000000e+00 3.10000000e+01]\n",
            "   ...\n",
            "   [1.00000000e+00 0.00000000e+00 3.10000000e+01]\n",
            "   [1.00000000e+00 0.00000000e+00 3.10000000e+01]\n",
            "   [1.00000000e+00 0.00000000e+00 3.10000000e+01]]\n",
            "\n",
            "  [[1.00000000e+00 0.00000000e+00 3.10000000e+01]\n",
            "   [1.00000000e+00 0.00000000e+00 3.10000000e+01]\n",
            "   [1.00000000e+00 0.00000000e+00 3.10000000e+01]\n",
            "   ...\n",
            "   [1.00000000e+00 0.00000000e+00 3.10000000e+01]\n",
            "   [1.00000000e+00 0.00000000e+00 3.10000000e+01]\n",
            "   [1.00000000e+00 0.00000000e+00 3.10000000e+01]]\n",
            "\n",
            "  ...\n",
            "\n",
            "  [[1.07500107e+02 9.49286346e+01 8.90816803e+01]\n",
            "   [1.15714394e+02 1.01285782e+02 9.41582489e+01]\n",
            "   [1.17974548e+02 1.04188812e+02 9.51888123e+01]\n",
            "   ...\n",
            "   [1.18617378e+02 2.90000000e+01 2.76939182e+01]\n",
            "   [1.19000000e+02 2.90000000e+01 2.80000000e+01]\n",
            "   [1.20076530e+02 3.00765305e+01 2.98622665e+01]]\n",
            "\n",
            "  [[1.07045891e+02 9.20458908e+01 8.70458908e+01]\n",
            "   [1.15852043e+02 1.00852043e+02 9.38520432e+01]\n",
            "   [1.15841820e+02 1.02056099e+02 9.32703857e+01]\n",
            "   ...\n",
            "   [1.17943863e+02 2.99438648e+01 2.87296009e+01]\n",
            "   [1.17923454e+02 2.79234543e+01 2.79234543e+01]\n",
            "   [1.17857117e+02 2.78571167e+01 2.78571167e+01]]\n",
            "\n",
            "  [[1.00785606e+02 8.57856064e+01 8.07856064e+01]\n",
            "   [1.13999931e+02 9.89999313e+01 9.28061218e+01]\n",
            "   [1.11999931e+02 9.74284973e+01 9.06427841e+01]\n",
            "   ...\n",
            "   [1.16857086e+02 2.88570862e+01 2.76428223e+01]\n",
            "   [1.14571381e+02 2.65713806e+01 2.55713806e+01]\n",
            "   [1.14642822e+02 2.46428223e+01 2.66428223e+01]]]\n",
            "\n",
            "\n",
            " [[[9.76530609e+01 7.90663223e+01 6.50663223e+01]\n",
            "   [1.04392860e+02 8.82500000e+01 7.33214264e+01]\n",
            "   [1.09520409e+02 9.69591827e+01 8.36683655e+01]\n",
            "   ...\n",
            "   [2.44423492e+02 2.37423492e+02 2.19423492e+02]\n",
            "   [2.46760208e+02 2.39760208e+02 2.21760208e+02]\n",
            "   [2.48000000e+02 2.41000000e+02 2.23000000e+02]]\n",
            "\n",
            "  [[1.06326530e+02 8.95204086e+01 7.75867386e+01]\n",
            "   [1.11239799e+02 9.68877640e+01 8.40918427e+01]\n",
            "   [1.50612259e+02 1.41198990e+02 1.26897972e+02]\n",
            "   ...\n",
            "   [2.40857162e+02 2.33857162e+02 2.15857162e+02]\n",
            "   [2.45071442e+02 2.38071442e+02 2.20071442e+02]\n",
            "   [2.47000000e+02 2.40000000e+02 2.22000000e+02]]\n",
            "\n",
            "  [[1.15163269e+02 1.02295921e+02 9.33724518e+01]\n",
            "   [1.54887756e+02 1.45117355e+02 1.34989807e+02]\n",
            "   [2.00071426e+02 1.92836746e+02 1.79790833e+02]\n",
            "   ...\n",
            "   [2.40357193e+02 2.33357193e+02 2.15357193e+02]\n",
            "   [2.43642868e+02 2.36642868e+02 2.18642868e+02]\n",
            "   [2.44571426e+02 2.37571426e+02 2.19571426e+02]]\n",
            "\n",
            "  ...\n",
            "\n",
            "  [[1.41214325e+02 5.36428566e+01 5.27959023e+01]\n",
            "   [1.37571487e+02 5.00000229e+01 4.82704086e+01]\n",
            "   [1.39000046e+02 5.16428375e+01 4.90000000e+01]\n",
            "   ...\n",
            "   [2.50168350e+02 2.41168350e+02 2.24168350e+02]\n",
            "   [2.50000000e+02 2.41000000e+02 2.24000000e+02]\n",
            "   [2.49785736e+02 2.40785736e+02 2.23785736e+02]]\n",
            "\n",
            "  [[1.41974503e+02 5.39744949e+01 5.19744949e+01]\n",
            "   [1.40357147e+02 5.23571548e+01 5.03571548e+01]\n",
            "   [1.39642853e+02 5.16581650e+01 4.76122398e+01]\n",
            "   ...\n",
            "   [2.51000000e+02 2.42000000e+02 2.25000000e+02]\n",
            "   [2.50933655e+02 2.41933655e+02 2.24933655e+02]\n",
            "   [2.50000000e+02 2.41000000e+02 2.24000000e+02]]\n",
            "\n",
            "  [[1.42571426e+02 5.45714302e+01 5.25714302e+01]\n",
            "   [1.42617371e+02 5.46173782e+01 5.26173782e+01]\n",
            "   [1.39642853e+02 5.18571434e+01 4.72142868e+01]\n",
            "   ...\n",
            "   [2.51494919e+02 2.42494919e+02 2.25494919e+02]\n",
            "   [2.51000000e+02 2.42000000e+02 2.25000000e+02]\n",
            "   [2.51000000e+02 2.42000000e+02 2.25000000e+02]]]\n",
            "\n",
            "\n",
            " [[[3.25867348e+01 3.25867348e+01 3.05867348e+01]\n",
            "   [3.20000000e+01 3.20000000e+01 3.20000000e+01]\n",
            "   [3.24285736e+01 3.20000000e+01 3.42142868e+01]\n",
            "   ...\n",
            "   [3.66428566e+01 3.14285927e+01 2.90713844e+01]\n",
            "   [3.03570900e+01 2.53570900e+01 2.23570900e+01]\n",
            "   [2.30560646e+01 1.80560646e+01 1.50560656e+01]]\n",
            "\n",
            "  [[3.14030609e+01 3.14030609e+01 2.94030609e+01]\n",
            "   [3.10714283e+01 3.10714283e+01 3.10714283e+01]\n",
            "   [3.24285736e+01 3.20000000e+01 3.42142868e+01]\n",
            "   ...\n",
            "   [3.91428375e+01 3.39285736e+01 3.15713634e+01]\n",
            "   [3.35713768e+01 2.85713768e+01 2.55713768e+01]\n",
            "   [2.48570385e+01 1.98570385e+01 1.68570385e+01]]\n",
            "\n",
            "  [[3.00000000e+01 3.00000000e+01 2.80000000e+01]\n",
            "   [3.07295914e+01 3.07295914e+01 3.07295914e+01]\n",
            "   [3.24285736e+01 3.20000000e+01 3.42142868e+01]\n",
            "   ...\n",
            "   [4.04285278e+01 3.52142639e+01 3.28570557e+01]\n",
            "   [3.82142487e+01 3.32142487e+01 3.02142467e+01]\n",
            "   [2.99998608e+01 2.49998608e+01 2.19998608e+01]]\n",
            "\n",
            "  ...\n",
            "\n",
            "  [[2.54000000e+02 2.54000000e+02 2.54000000e+02]\n",
            "   [2.54000000e+02 2.54000000e+02 2.54000000e+02]\n",
            "   [2.54000000e+02 2.54000000e+02 2.54000000e+02]\n",
            "   ...\n",
            "   [4.64285278e+01 2.27857361e+01 9.00000000e+00]\n",
            "   [4.59285583e+01 2.21428223e+01 9.71429443e+00]\n",
            "   [4.28570862e+01 1.90713501e+01 6.64282227e+00]]\n",
            "\n",
            "  [[2.54000000e+02 2.54000000e+02 2.54000000e+02]\n",
            "   [2.54000000e+02 2.54000000e+02 2.54000000e+02]\n",
            "   [2.54000000e+02 2.54000000e+02 2.54000000e+02]\n",
            "   ...\n",
            "   [4.63723946e+01 2.27296009e+01 8.94386578e+00]\n",
            "   [4.27856750e+01 1.87856750e+01 6.78567505e+00]\n",
            "   [3.95968971e+01 1.55968981e+01 3.59689808e+00]]\n",
            "\n",
            "  [[2.54000000e+02 2.54000000e+02 2.54000000e+02]\n",
            "   [2.54000000e+02 2.54000000e+02 2.54000000e+02]\n",
            "   [2.54000000e+02 2.54000000e+02 2.54000000e+02]\n",
            "   ...\n",
            "   [4.32090836e+01 1.87805557e+01 6.56629181e+00]\n",
            "   [4.10000000e+01 1.70000000e+01 5.00000000e+00]\n",
            "   [4.07143555e+01 1.67143555e+01 6.71435547e+00]]]\n",
            "\n",
            "\n",
            " ...\n",
            "\n",
            "\n",
            " [[[2.35000000e+02 2.33000000e+02 1.84000000e+02]\n",
            "   [2.36928574e+02 2.34928574e+02 1.86928574e+02]\n",
            "   [2.38138702e+02 2.35924423e+02 1.88567276e+02]\n",
            "   ...\n",
            "   [1.42204636e+02 1.06061691e+02 7.66331635e+01]\n",
            "   [1.36100983e+02 9.71009827e+01 6.61009827e+01]\n",
            "   [1.26105240e+02 8.51052399e+01 5.51052399e+01]]\n",
            "\n",
            "  [[2.35642853e+02 2.31642853e+02 1.83642853e+02]\n",
            "   [2.37874680e+02 2.33874680e+02 1.86874680e+02]\n",
            "   [2.38941971e+02 2.34941971e+02 1.88370544e+02]\n",
            "   ...\n",
            "   [1.49318756e+02 1.13961540e+02 8.21509323e+01]\n",
            "   [1.34856155e+02 9.58561478e+01 6.48561478e+01]\n",
            "   [1.27820007e+02 8.68200073e+01 5.68200111e+01]]\n",
            "\n",
            "  [[2.35642853e+02 2.31642853e+02 1.83642853e+02]\n",
            "   [2.36945480e+02 2.32945480e+02 1.85182083e+02]\n",
            "   [2.37236603e+02 2.33236603e+02 1.86338013e+02]\n",
            "   ...\n",
            "   [1.48766525e+02 1.13409317e+02 8.11950531e+01]\n",
            "   [1.38290176e+02 9.92901764e+01 6.67633896e+01]\n",
            "   [1.32347656e+02 9.13476562e+01 5.98208733e+01]]\n",
            "\n",
            "  ...\n",
            "\n",
            "  [[2.55000000e+02 2.12133591e+02 1.86660324e+02]\n",
            "   [2.55000000e+02 2.14763367e+02 1.86763367e+02]\n",
            "   [2.53323334e+02 2.12650497e+02 1.84385498e+02]\n",
            "   ...\n",
            "   [2.26525040e+02 1.69525040e+02 1.62525040e+02]\n",
            "   [2.52622208e+02 1.98511551e+02 1.89116196e+02]\n",
            "   [2.53545837e+02 2.02877548e+02 1.91211685e+02]]\n",
            "\n",
            "  [[2.52510468e+02 2.10364456e+02 1.82758881e+02]\n",
            "   [2.53116028e+02 2.12116028e+02 1.84116028e+02]\n",
            "   [2.53416138e+02 2.14300110e+02 1.85131409e+02]\n",
            "   ...\n",
            "   [1.46211349e+02 8.82693710e+01 8.40953293e+01]\n",
            "   [2.23439270e+02 1.68443405e+02 1.61430969e+02]\n",
            "   [2.53081512e+02 2.00401398e+02 1.91860809e+02]]\n",
            "\n",
            "  [[2.52710815e+02 2.12458923e+02 1.86584869e+02]\n",
            "   [2.51163895e+02 2.12163895e+02 1.83163895e+02]\n",
            "   [2.47927551e+02 2.10776413e+02 1.81776413e+02]\n",
            "   ...\n",
            "   [1.41158997e+02 8.71762772e+01 8.26849136e+01]\n",
            "   [1.58315674e+02 1.05315666e+02 9.93156662e+01]\n",
            "   [2.39812149e+02 1.89132050e+02 1.82106827e+02]]]\n",
            "\n",
            "\n",
            " [[[2.23229599e+02 1.86229599e+02 8.22295914e+01]\n",
            "   [2.27816330e+02 1.90816330e+02 8.68163300e+01]\n",
            "   [2.31607132e+02 1.93607132e+02 9.26071396e+01]\n",
            "   ...\n",
            "   [6.21326485e+01 2.38417950e+01 5.98976803e+00]\n",
            "   [6.32602386e+01 2.16173820e+01 4.85206604e+00]\n",
            "   [6.12141113e+01 1.95712547e+01 2.98453188e+00]]\n",
            "\n",
            "  [[2.20500000e+02 1.83525497e+02 7.73775558e+01]\n",
            "   [2.20214294e+02 1.83214294e+02 7.89336777e+01]\n",
            "   [2.21770416e+02 1.83770416e+02 8.33112259e+01]\n",
            "   ...\n",
            "   [6.63571014e+01 2.94132233e+01 3.19893765e+00]\n",
            "   [6.80765457e+01 2.81377678e+01 2.78571439e+00]\n",
            "   [6.53365631e+01 2.34079933e+01 5.96906424e-01]]\n",
            "\n",
            "  [[2.15132660e+02 1.78994904e+02 6.78367386e+01]\n",
            "   [2.13642868e+02 1.76642868e+02 7.05714264e+01]\n",
            "   [2.16091843e+02 1.77923462e+02 7.95969391e+01]\n",
            "   ...\n",
            "   [7.24439240e+01 3.48265762e+01 4.59136739e-02]\n",
            "   [7.98724670e+01 4.06734505e+01 3.87243915e+00]\n",
            "   [7.55713272e+01 3.37856102e+01 0.00000000e+00]]\n",
            "\n",
            "  ...\n",
            "\n",
            "  [[2.47362259e+02 2.40362259e+02 1.86010223e+02]\n",
            "   [2.47127548e+02 2.40127548e+02 1.85428574e+02]\n",
            "   [2.45025513e+02 2.38214279e+02 1.81025528e+02]\n",
            "   ...\n",
            "   [2.49000000e+02 2.41168381e+02 1.91663239e+02]\n",
            "   [2.48729568e+02 2.40943863e+02 1.91300980e+02]\n",
            "   [2.48000000e+02 2.40494934e+02 1.89857056e+02]]\n",
            "\n",
            "  [[2.50163315e+02 2.43163315e+02 1.91071503e+02]\n",
            "   [2.48000015e+02 2.41000015e+02 1.88867401e+02]\n",
            "   [2.47301056e+02 2.39673508e+02 1.85801071e+02]\n",
            "   ...\n",
            "   [2.48071411e+02 2.41056107e+02 1.89102020e+02]\n",
            "   [2.48000000e+02 2.41000000e+02 1.88867325e+02]\n",
            "   [2.48331665e+02 2.41331665e+02 1.87423477e+02]]\n",
            "\n",
            "  [[2.50301025e+02 2.42301025e+02 1.93301025e+02]\n",
            "   [2.46382660e+02 2.38714294e+02 1.88719376e+02]\n",
            "   [2.47005112e+02 2.39362244e+02 1.86586731e+02]\n",
            "   ...\n",
            "   [2.47214264e+02 2.40214264e+02 1.87204041e+02]\n",
            "   [2.47071442e+02 2.40071442e+02 1.86071442e+02]\n",
            "   [2.49000000e+02 2.42000000e+02 1.87229584e+02]]]\n",
            "\n",
            "\n",
            " [[[6.97142868e+01 3.65000000e+01 3.78571415e+00]\n",
            "   [7.13112259e+01 3.87397957e+01 4.09693861e+00]\n",
            "   [6.95765305e+01 3.76479568e+01 2.29081607e+00]\n",
            "   ...\n",
            "   [8.57296371e+01 7.10051575e+01 3.42143517e+01]\n",
            "   [8.00407181e+01 6.71580582e+01 3.58723984e+01]\n",
            "   [6.88163376e+01 5.69591942e+01 3.08164062e+01]]\n",
            "\n",
            "  [[7.57602081e+01 3.49030609e+01 2.83163333e+00]\n",
            "   [7.48520432e+01 3.60663261e+01 2.99489808e+00]\n",
            "   [6.94285660e+01 3.38571396e+01 5.61222248e-02]\n",
            "   ...\n",
            "   [8.16378098e+01 5.68265762e+01 2.58265553e+01]\n",
            "   [8.39948807e+01 5.93520241e+01 1.94999714e+01]\n",
            "   [8.73317719e+01 6.36174850e+01 1.82603378e+01]]\n",
            "\n",
            "  [[6.67193832e+01 3.52193871e+01 2.21938777e+00]\n",
            "   [6.24285660e+01 3.07142849e+01 1.53060742e-02]\n",
            "   [5.93469391e+01 2.78316326e+01 9.18368548e-02]\n",
            "   ...\n",
            "   [8.25203552e+01 6.37601357e+01 3.13570137e+01]\n",
            "   [7.80000000e+01 5.59285469e+01 1.55867128e+01]\n",
            "   [8.65716400e+01 6.06430664e+01 1.65002098e+01]]\n",
            "\n",
            "  ...\n",
            "\n",
            "  [[2.00591873e+02 2.15158142e+02 2.14382751e+02]\n",
            "   [1.96270523e+02 2.09841873e+02 2.02326660e+02]\n",
            "   [1.92760223e+02 2.06545929e+02 1.90780655e+02]\n",
            "   ...\n",
            "   [1.14596886e+02 1.18596886e+02 9.48316422e+01]\n",
            "   [1.22800980e+02 1.27800980e+02 1.05800980e+02]\n",
            "   [1.15928619e+02 1.20928619e+02 1.00928619e+02]]\n",
            "\n",
            "  [[1.94892899e+02 2.02750015e+02 2.14678635e+02]\n",
            "   [2.08076462e+02 2.16928482e+02 2.22428528e+02]\n",
            "   [1.96413361e+02 2.09556198e+02 2.00153214e+02]\n",
            "   ...\n",
            "   [1.15285706e+02 1.18270401e+02 9.94592056e+01]\n",
            "   [1.21846909e+02 1.26704025e+02 1.06775467e+02]\n",
            "   [1.10285736e+02 1.15142853e+02 9.32142944e+01]]\n",
            "\n",
            "  [[1.85152374e+02 1.88152374e+02 2.06325897e+02]\n",
            "   [2.01362289e+02 2.07959198e+02 2.18908234e+02]\n",
            "   [2.06392944e+02 2.17387833e+02 2.17765442e+02]\n",
            "   ...\n",
            "   [1.17357178e+02 1.19709175e+02 1.05938766e+02]\n",
            "   [1.23499908e+02 1.26499908e+02 1.07499908e+02]\n",
            "   [1.07285645e+02 1.10285645e+02 8.92856445e+01]]]], shape=(32, 224, 224, 3), dtype=float32) tf.Tensor(\n",
            "[[0. 0. 0. 1. 0. 0. 0. 0. 0. 0.]\n",
            " [0. 0. 0. 0. 0. 0. 0. 0. 0. 1.]\n",
            " [0. 0. 0. 0. 0. 0. 0. 0. 1. 0.]\n",
            " [0. 0. 0. 0. 0. 0. 1. 0. 0. 0.]\n",
            " [0. 0. 0. 0. 0. 0. 1. 0. 0. 0.]\n",
            " [0. 1. 0. 0. 0. 0. 0. 0. 0. 0.]\n",
            " [1. 0. 0. 0. 0. 0. 0. 0. 0. 0.]\n",
            " [0. 0. 0. 0. 0. 0. 0. 0. 1. 0.]\n",
            " [0. 0. 0. 0. 0. 0. 0. 0. 1. 0.]\n",
            " [0. 0. 0. 0. 0. 1. 0. 0. 0. 0.]\n",
            " [0. 0. 0. 0. 0. 1. 0. 0. 0. 0.]\n",
            " [0. 0. 0. 0. 0. 0. 0. 0. 0. 1.]\n",
            " [0. 0. 0. 0. 0. 0. 0. 0. 0. 1.]\n",
            " [0. 0. 0. 0. 1. 0. 0. 0. 0. 0.]\n",
            " [0. 0. 0. 0. 0. 1. 0. 0. 0. 0.]\n",
            " [0. 0. 0. 0. 0. 0. 0. 1. 0. 0.]\n",
            " [0. 0. 0. 0. 0. 1. 0. 0. 0. 0.]\n",
            " [0. 0. 0. 0. 0. 1. 0. 0. 0. 0.]\n",
            " [0. 0. 0. 0. 0. 1. 0. 0. 0. 0.]\n",
            " [0. 0. 1. 0. 0. 0. 0. 0. 0. 0.]\n",
            " [0. 0. 0. 0. 0. 0. 1. 0. 0. 0.]\n",
            " [0. 0. 0. 0. 0. 1. 0. 0. 0. 0.]\n",
            " [0. 0. 0. 0. 0. 0. 0. 0. 0. 1.]\n",
            " [1. 0. 0. 0. 0. 0. 0. 0. 0. 0.]\n",
            " [0. 0. 0. 0. 0. 0. 1. 0. 0. 0.]\n",
            " [0. 0. 0. 0. 0. 0. 0. 0. 1. 0.]\n",
            " [0. 0. 0. 0. 0. 0. 0. 0. 1. 0.]\n",
            " [0. 0. 0. 0. 0. 0. 0. 1. 0. 0.]\n",
            " [0. 0. 0. 0. 0. 0. 0. 1. 0. 0.]\n",
            " [0. 0. 0. 0. 0. 0. 0. 0. 0. 1.]\n",
            " [0. 0. 0. 1. 0. 0. 0. 0. 0. 0.]\n",
            " [0. 0. 0. 0. 0. 0. 0. 1. 0. 0.]], shape=(32, 10), dtype=float32)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "c1WcrMG58YtV"
      },
      "source": [
        "Notice how the image arrays come out as tensors of pixel values where as the labels come out as one-hot encodings (e.g. `[0. 0. 0. 0. 1. 0. 0. 0. 0. 0.]` for `hamburger`)."
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "i5DL4UYE8m1j"
      },
      "source": [
        "### Model 0: Building a transfer learning model using the Keras Functional API\n",
        "\n",
        "Alright, our data is tensor-ified, let's build a model.\n",
        "\n",
        "To do so we're going to be using the [`tf.keras.applications`](https://www.tensorflow.org/api_docs/python/tf/keras/applications) module as it contains a series of already trained (on ImageNet) computer vision models as well as the Keras Functional API to construct our model.\n",
        "\n",
        "We're going to go through the following steps:\n",
        "\n",
        "1. Instantiate a pre-trained base model object by choosing a target model such as [`EfficientNetB0`](https://www.tensorflow.org/api_docs/python/tf/keras/applications/EfficientNetB0) from `tf.keras.applications`, setting the `include_top` parameter to `False` (we do this because we're going to create our own top, which are the output layers for the model).\n",
        "2. Set the base model's `trainable` attribute to `False` to freeze all of the weights in the pre-trained model.\n",
        "3. Define an input layer for our model, for example, what shape of data should our model expect?\n",
        "4. [Optional] Normalize the inputs to our model if it requires. Some computer vision models such as `ResNetV250` require their inputs to be between 0 & 1. \n",
        "\n",
        "> 🤔 **Note:** As of writing, the `EfficientNet` models in the `tf.keras.applications` module do not require images to be normalized (pixel values between 0 and 1) on input, where as many of the other models do. I posted [an issue to the TensorFlow GitHub](https://github.com/tensorflow/tensorflow/issues/42506) about this and they confirmed this. \n",
        "\n",
        "5. Pass the inputs to the base model.\n",
        "6. Pool the outputs of the base model into a shape compatible with the output activation layer (turn base model output tensors into same shape as label tensors). This can be done using [`tf.keras.layers.GlobalAveragePooling2D()`](https://www.tensorflow.org/api_docs/python/tf/keras/layers/GlobalAveragePooling2D) or [`tf.keras.layers.GlobalMaxPooling2D()`](https://www.tensorflow.org/api_docs/python/tf/keras/layers/GlobalMaxPool2D?hl=en) though the former is more common in practice.\n",
        "7. Create an output activation layer using `tf.keras.layers.Dense()` with the appropriate activation function and number of neurons.\n",
        "8. Combine the inputs and outputs layer into a model using [`tf.keras.Model()`](https://www.tensorflow.org/api_docs/python/tf/keras/Model).\n",
        "9. Compile the model using the appropriate loss function and choose of optimizer.\n",
        "10. Fit the model for desired number of epochs and with necessary callbacks (in our case, we'll start off with the TensorBoard callback).\n",
        "\n",
        "Woah... that sounds like a lot. Before we get ahead of ourselves, let's see it in practice."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "ayNga8DsJLPa",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "e585c86c-d376-4ace-a746-dc8a87d7dd91"
      },
      "source": [
        "# 1. Create base model with tf.keras.applications\n",
        "base_model = tf.keras.applications.EfficientNetB0(include_top=False)\n",
        "\n",
        "# 2. Freeze the base model (so the pre-learned patterns remain)\n",
        "base_model.trainable = False\n",
        "\n",
        "# 3. Create inputs into the base model\n",
        "inputs = tf.keras.layers.Input(shape=(224, 224, 3), name=\"input_layer\")\n",
        "\n",
        "# 4. If using ResNet50V2, add this to speed up convergence, remove for EfficientNet\n",
        "# x = tf.keras.layers.experimental.preprocessing.Rescaling(1./255)(inputs)\n",
        "\n",
        "# 5. Pass the inputs to the base_model (note: using tf.keras.applications, EfficientNet inputs don't have to be normalized)\n",
        "x = base_model(inputs)\n",
        "# Check data shape after passing it to base_model\n",
        "print(f\"Shape after base_model: {x.shape}\")\n",
        "\n",
        "# 6. Average pool the outputs of the base model (aggregate all the most important information, reduce number of computations)\n",
        "x = tf.keras.layers.GlobalAveragePooling2D(name=\"global_average_pooling_layer\")(x)\n",
        "print(f\"After GlobalAveragePooling2D(): {x.shape}\")\n",
        "\n",
        "# 7. Create the output activation layer\n",
        "outputs = tf.keras.layers.Dense(10, activation=\"softmax\", name=\"output_layer\")(x)\n",
        "\n",
        "# 8. Combine the inputs with the outputs into a model\n",
        "model_0 = tf.keras.Model(inputs, outputs)\n",
        "\n",
        "# 9. Compile the model\n",
        "model_0.compile(loss='categorical_crossentropy',\n",
        "              optimizer=tf.keras.optimizers.Adam(),\n",
        "              metrics=[\"accuracy\"])\n",
        "\n",
        "# 10. Fit the model (we use less steps for validation so it's faster)\n",
        "history_10_percent = model_0.fit(train_data_10_percent,\n",
        "                                 epochs=5,\n",
        "                                 steps_per_epoch=len(train_data_10_percent),\n",
        "                                 validation_data=test_data_10_percent,\n",
        "                                 # Go through less of the validation data so epochs are faster (we want faster experiments!)\n",
        "                                 validation_steps=int(0.25 * len(test_data_10_percent)), \n",
        "                                 # Track our model's training logs for visualization later\n",
        "                                 callbacks=[create_tensorboard_callback(\"transfer_learning\", \"10_percent_feature_extract\")])"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Shape after base_model: (None, 7, 7, 1280)\n",
            "After GlobalAveragePooling2D(): (None, 1280)\n",
            "Saving TensorBoard log files to: transfer_learning/10_percent_feature_extract/20210216-021515\n",
            "Epoch 1/5\n",
            "24/24 [==============================] - 14s 313ms/step - loss: 2.1271 - accuracy: 0.2823 - val_loss: 1.3399 - val_accuracy: 0.6743\n",
            "Epoch 2/5\n",
            "24/24 [==============================] - 6s 223ms/step - loss: 1.2676 - accuracy: 0.6741 - val_loss: 0.8985 - val_accuracy: 0.8224\n",
            "Epoch 3/5\n",
            "24/24 [==============================] - 6s 222ms/step - loss: 0.9113 - accuracy: 0.7824 - val_loss: 0.6983 - val_accuracy: 0.8520\n",
            "Epoch 4/5\n",
            "24/24 [==============================] - 6s 224ms/step - loss: 0.7330 - accuracy: 0.8208 - val_loss: 0.6213 - val_accuracy: 0.8635\n",
            "Epoch 5/5\n",
            "24/24 [==============================] - 6s 224ms/step - loss: 0.6232 - accuracy: 0.8519 - val_loss: 0.5716 - val_accuracy: 0.8651\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "sUhkvBx0Hb8D"
      },
      "source": [
        "Nice! After a minute or so of training our model performs incredibly well on both the training (87%+ accuracy) and test sets (~83% accuracy).\n",
        "\n",
        "This is incredible. All thanks to the power of transfer learning.\n",
        "\n",
        "It's important to note the kind of transfer learning we used here is called feature extraction transfer learning, similar to what we did with the TensorFlow Hub models.\n",
        "\n",
        "In other words, we passed our custom data to an already pre-trained model (`EfficientNetB0`), asked it \"what patterns do you see?\" and then put our own output layer on top to make sure the outputs were tailored to our desired number of classes. \n",
        "\n",
        "We also used the Keras Functional API to build our model rather than the Sequential API. For now, the benefits of this main not seem clear but when you start to build more sophisticated models, you'll probably want to use the Functional API. So it's important to have exposure to this way of building models.\n",
        "\n",
        "> 📖 **Resource:** To see the benefits and use cases of the Functional API versus the Sequential API, check out the [TensorFlow Functional API documentation](https://www.tensorflow.org/guide/keras/functional).\n",
        "\n",
        "Let's inspect the layers in our model, we'll start with the base."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "lUuQOyKv4_27",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "df5cca5e-2358-47ae-d1d5-7c14200c1a96"
      },
      "source": [
        "# Check layers in our base model\n",
        "for layer_number, layer in enumerate(base_model.layers):\n",
        "  print(layer_number, layer.name)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "0 input_1\n",
            "1 rescaling\n",
            "2 normalization\n",
            "3 stem_conv_pad\n",
            "4 stem_conv\n",
            "5 stem_bn\n",
            "6 stem_activation\n",
            "7 block1a_dwconv\n",
            "8 block1a_bn\n",
            "9 block1a_activation\n",
            "10 block1a_se_squeeze\n",
            "11 block1a_se_reshape\n",
            "12 block1a_se_reduce\n",
            "13 block1a_se_expand\n",
            "14 block1a_se_excite\n",
            "15 block1a_project_conv\n",
            "16 block1a_project_bn\n",
            "17 block2a_expand_conv\n",
            "18 block2a_expand_bn\n",
            "19 block2a_expand_activation\n",
            "20 block2a_dwconv_pad\n",
            "21 block2a_dwconv\n",
            "22 block2a_bn\n",
            "23 block2a_activation\n",
            "24 block2a_se_squeeze\n",
            "25 block2a_se_reshape\n",
            "26 block2a_se_reduce\n",
            "27 block2a_se_expand\n",
            "28 block2a_se_excite\n",
            "29 block2a_project_conv\n",
            "30 block2a_project_bn\n",
            "31 block2b_expand_conv\n",
            "32 block2b_expand_bn\n",
            "33 block2b_expand_activation\n",
            "34 block2b_dwconv\n",
            "35 block2b_bn\n",
            "36 block2b_activation\n",
            "37 block2b_se_squeeze\n",
            "38 block2b_se_reshape\n",
            "39 block2b_se_reduce\n",
            "40 block2b_se_expand\n",
            "41 block2b_se_excite\n",
            "42 block2b_project_conv\n",
            "43 block2b_project_bn\n",
            "44 block2b_drop\n",
            "45 block2b_add\n",
            "46 block3a_expand_conv\n",
            "47 block3a_expand_bn\n",
            "48 block3a_expand_activation\n",
            "49 block3a_dwconv_pad\n",
            "50 block3a_dwconv\n",
            "51 block3a_bn\n",
            "52 block3a_activation\n",
            "53 block3a_se_squeeze\n",
            "54 block3a_se_reshape\n",
            "55 block3a_se_reduce\n",
            "56 block3a_se_expand\n",
            "57 block3a_se_excite\n",
            "58 block3a_project_conv\n",
            "59 block3a_project_bn\n",
            "60 block3b_expand_conv\n",
            "61 block3b_expand_bn\n",
            "62 block3b_expand_activation\n",
            "63 block3b_dwconv\n",
            "64 block3b_bn\n",
            "65 block3b_activation\n",
            "66 block3b_se_squeeze\n",
            "67 block3b_se_reshape\n",
            "68 block3b_se_reduce\n",
            "69 block3b_se_expand\n",
            "70 block3b_se_excite\n",
            "71 block3b_project_conv\n",
            "72 block3b_project_bn\n",
            "73 block3b_drop\n",
            "74 block3b_add\n",
            "75 block4a_expand_conv\n",
            "76 block4a_expand_bn\n",
            "77 block4a_expand_activation\n",
            "78 block4a_dwconv_pad\n",
            "79 block4a_dwconv\n",
            "80 block4a_bn\n",
            "81 block4a_activation\n",
            "82 block4a_se_squeeze\n",
            "83 block4a_se_reshape\n",
            "84 block4a_se_reduce\n",
            "85 block4a_se_expand\n",
            "86 block4a_se_excite\n",
            "87 block4a_project_conv\n",
            "88 block4a_project_bn\n",
            "89 block4b_expand_conv\n",
            "90 block4b_expand_bn\n",
            "91 block4b_expand_activation\n",
            "92 block4b_dwconv\n",
            "93 block4b_bn\n",
            "94 block4b_activation\n",
            "95 block4b_se_squeeze\n",
            "96 block4b_se_reshape\n",
            "97 block4b_se_reduce\n",
            "98 block4b_se_expand\n",
            "99 block4b_se_excite\n",
            "100 block4b_project_conv\n",
            "101 block4b_project_bn\n",
            "102 block4b_drop\n",
            "103 block4b_add\n",
            "104 block4c_expand_conv\n",
            "105 block4c_expand_bn\n",
            "106 block4c_expand_activation\n",
            "107 block4c_dwconv\n",
            "108 block4c_bn\n",
            "109 block4c_activation\n",
            "110 block4c_se_squeeze\n",
            "111 block4c_se_reshape\n",
            "112 block4c_se_reduce\n",
            "113 block4c_se_expand\n",
            "114 block4c_se_excite\n",
            "115 block4c_project_conv\n",
            "116 block4c_project_bn\n",
            "117 block4c_drop\n",
            "118 block4c_add\n",
            "119 block5a_expand_conv\n",
            "120 block5a_expand_bn\n",
            "121 block5a_expand_activation\n",
            "122 block5a_dwconv\n",
            "123 block5a_bn\n",
            "124 block5a_activation\n",
            "125 block5a_se_squeeze\n",
            "126 block5a_se_reshape\n",
            "127 block5a_se_reduce\n",
            "128 block5a_se_expand\n",
            "129 block5a_se_excite\n",
            "130 block5a_project_conv\n",
            "131 block5a_project_bn\n",
            "132 block5b_expand_conv\n",
            "133 block5b_expand_bn\n",
            "134 block5b_expand_activation\n",
            "135 block5b_dwconv\n",
            "136 block5b_bn\n",
            "137 block5b_activation\n",
            "138 block5b_se_squeeze\n",
            "139 block5b_se_reshape\n",
            "140 block5b_se_reduce\n",
            "141 block5b_se_expand\n",
            "142 block5b_se_excite\n",
            "143 block5b_project_conv\n",
            "144 block5b_project_bn\n",
            "145 block5b_drop\n",
            "146 block5b_add\n",
            "147 block5c_expand_conv\n",
            "148 block5c_expand_bn\n",
            "149 block5c_expand_activation\n",
            "150 block5c_dwconv\n",
            "151 block5c_bn\n",
            "152 block5c_activation\n",
            "153 block5c_se_squeeze\n",
            "154 block5c_se_reshape\n",
            "155 block5c_se_reduce\n",
            "156 block5c_se_expand\n",
            "157 block5c_se_excite\n",
            "158 block5c_project_conv\n",
            "159 block5c_project_bn\n",
            "160 block5c_drop\n",
            "161 block5c_add\n",
            "162 block6a_expand_conv\n",
            "163 block6a_expand_bn\n",
            "164 block6a_expand_activation\n",
            "165 block6a_dwconv_pad\n",
            "166 block6a_dwconv\n",
            "167 block6a_bn\n",
            "168 block6a_activation\n",
            "169 block6a_se_squeeze\n",
            "170 block6a_se_reshape\n",
            "171 block6a_se_reduce\n",
            "172 block6a_se_expand\n",
            "173 block6a_se_excite\n",
            "174 block6a_project_conv\n",
            "175 block6a_project_bn\n",
            "176 block6b_expand_conv\n",
            "177 block6b_expand_bn\n",
            "178 block6b_expand_activation\n",
            "179 block6b_dwconv\n",
            "180 block6b_bn\n",
            "181 block6b_activation\n",
            "182 block6b_se_squeeze\n",
            "183 block6b_se_reshape\n",
            "184 block6b_se_reduce\n",
            "185 block6b_se_expand\n",
            "186 block6b_se_excite\n",
            "187 block6b_project_conv\n",
            "188 block6b_project_bn\n",
            "189 block6b_drop\n",
            "190 block6b_add\n",
            "191 block6c_expand_conv\n",
            "192 block6c_expand_bn\n",
            "193 block6c_expand_activation\n",
            "194 block6c_dwconv\n",
            "195 block6c_bn\n",
            "196 block6c_activation\n",
            "197 block6c_se_squeeze\n",
            "198 block6c_se_reshape\n",
            "199 block6c_se_reduce\n",
            "200 block6c_se_expand\n",
            "201 block6c_se_excite\n",
            "202 block6c_project_conv\n",
            "203 block6c_project_bn\n",
            "204 block6c_drop\n",
            "205 block6c_add\n",
            "206 block6d_expand_conv\n",
            "207 block6d_expand_bn\n",
            "208 block6d_expand_activation\n",
            "209 block6d_dwconv\n",
            "210 block6d_bn\n",
            "211 block6d_activation\n",
            "212 block6d_se_squeeze\n",
            "213 block6d_se_reshape\n",
            "214 block6d_se_reduce\n",
            "215 block6d_se_expand\n",
            "216 block6d_se_excite\n",
            "217 block6d_project_conv\n",
            "218 block6d_project_bn\n",
            "219 block6d_drop\n",
            "220 block6d_add\n",
            "221 block7a_expand_conv\n",
            "222 block7a_expand_bn\n",
            "223 block7a_expand_activation\n",
            "224 block7a_dwconv\n",
            "225 block7a_bn\n",
            "226 block7a_activation\n",
            "227 block7a_se_squeeze\n",
            "228 block7a_se_reshape\n",
            "229 block7a_se_reduce\n",
            "230 block7a_se_expand\n",
            "231 block7a_se_excite\n",
            "232 block7a_project_conv\n",
            "233 block7a_project_bn\n",
            "234 top_conv\n",
            "235 top_bn\n",
            "236 top_activation\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "nVTG-ZZUJhKB"
      },
      "source": [
        "Wow, that's a lot of layers... to handcode all of those would've taken a fairly long time to do, yet we can still take advatange of them thanks to the power of transfer learning.\n",
        "\n",
        "How about a summary of the base model?"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "0gKubJmUu91N",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "68436c34-39d6-4883-c722-ccaa5b4e25fe"
      },
      "source": [
        "base_model.summary()"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Model: \"efficientnetb0\"\n",
            "__________________________________________________________________________________________________\n",
            "Layer (type)                    Output Shape         Param #     Connected to                     \n",
            "==================================================================================================\n",
            "input_1 (InputLayer)            [(None, None, None,  0                                            \n",
            "__________________________________________________________________________________________________\n",
            "rescaling (Rescaling)           (None, None, None, 3 0           input_1[0][0]                    \n",
            "__________________________________________________________________________________________________\n",
            "normalization (Normalization)   (None, None, None, 3 7           rescaling[0][0]                  \n",
            "__________________________________________________________________________________________________\n",
            "stem_conv_pad (ZeroPadding2D)   (None, None, None, 3 0           normalization[0][0]              \n",
            "__________________________________________________________________________________________________\n",
            "stem_conv (Conv2D)              (None, None, None, 3 864         stem_conv_pad[0][0]              \n",
            "__________________________________________________________________________________________________\n",
            "stem_bn (BatchNormalization)    (None, None, None, 3 128         stem_conv[0][0]                  \n",
            "__________________________________________________________________________________________________\n",
            "stem_activation (Activation)    (None, None, None, 3 0           stem_bn[0][0]                    \n",
            "__________________________________________________________________________________________________\n",
            "block1a_dwconv (DepthwiseConv2D (None, None, None, 3 288         stem_activation[0][0]            \n",
            "__________________________________________________________________________________________________\n",
            "block1a_bn (BatchNormalization) (None, None, None, 3 128         block1a_dwconv[0][0]             \n",
            "__________________________________________________________________________________________________\n",
            "block1a_activation (Activation) (None, None, None, 3 0           block1a_bn[0][0]                 \n",
            "__________________________________________________________________________________________________\n",
            "block1a_se_squeeze (GlobalAvera (None, 32)           0           block1a_activation[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block1a_se_reshape (Reshape)    (None, 1, 1, 32)     0           block1a_se_squeeze[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block1a_se_reduce (Conv2D)      (None, 1, 1, 8)      264         block1a_se_reshape[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block1a_se_expand (Conv2D)      (None, 1, 1, 32)     288         block1a_se_reduce[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block1a_se_excite (Multiply)    (None, None, None, 3 0           block1a_activation[0][0]         \n",
            "                                                                 block1a_se_expand[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block1a_project_conv (Conv2D)   (None, None, None, 1 512         block1a_se_excite[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block1a_project_bn (BatchNormal (None, None, None, 1 64          block1a_project_conv[0][0]       \n",
            "__________________________________________________________________________________________________\n",
            "block2a_expand_conv (Conv2D)    (None, None, None, 9 1536        block1a_project_bn[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block2a_expand_bn (BatchNormali (None, None, None, 9 384         block2a_expand_conv[0][0]        \n",
            "__________________________________________________________________________________________________\n",
            "block2a_expand_activation (Acti (None, None, None, 9 0           block2a_expand_bn[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block2a_dwconv_pad (ZeroPadding (None, None, None, 9 0           block2a_expand_activation[0][0]  \n",
            "__________________________________________________________________________________________________\n",
            "block2a_dwconv (DepthwiseConv2D (None, None, None, 9 864         block2a_dwconv_pad[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block2a_bn (BatchNormalization) (None, None, None, 9 384         block2a_dwconv[0][0]             \n",
            "__________________________________________________________________________________________________\n",
            "block2a_activation (Activation) (None, None, None, 9 0           block2a_bn[0][0]                 \n",
            "__________________________________________________________________________________________________\n",
            "block2a_se_squeeze (GlobalAvera (None, 96)           0           block2a_activation[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block2a_se_reshape (Reshape)    (None, 1, 1, 96)     0           block2a_se_squeeze[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block2a_se_reduce (Conv2D)      (None, 1, 1, 4)      388         block2a_se_reshape[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block2a_se_expand (Conv2D)      (None, 1, 1, 96)     480         block2a_se_reduce[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block2a_se_excite (Multiply)    (None, None, None, 9 0           block2a_activation[0][0]         \n",
            "                                                                 block2a_se_expand[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block2a_project_conv (Conv2D)   (None, None, None, 2 2304        block2a_se_excite[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block2a_project_bn (BatchNormal (None, None, None, 2 96          block2a_project_conv[0][0]       \n",
            "__________________________________________________________________________________________________\n",
            "block2b_expand_conv (Conv2D)    (None, None, None, 1 3456        block2a_project_bn[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block2b_expand_bn (BatchNormali (None, None, None, 1 576         block2b_expand_conv[0][0]        \n",
            "__________________________________________________________________________________________________\n",
            "block2b_expand_activation (Acti (None, None, None, 1 0           block2b_expand_bn[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block2b_dwconv (DepthwiseConv2D (None, None, None, 1 1296        block2b_expand_activation[0][0]  \n",
            "__________________________________________________________________________________________________\n",
            "block2b_bn (BatchNormalization) (None, None, None, 1 576         block2b_dwconv[0][0]             \n",
            "__________________________________________________________________________________________________\n",
            "block2b_activation (Activation) (None, None, None, 1 0           block2b_bn[0][0]                 \n",
            "__________________________________________________________________________________________________\n",
            "block2b_se_squeeze (GlobalAvera (None, 144)          0           block2b_activation[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block2b_se_reshape (Reshape)    (None, 1, 1, 144)    0           block2b_se_squeeze[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block2b_se_reduce (Conv2D)      (None, 1, 1, 6)      870         block2b_se_reshape[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block2b_se_expand (Conv2D)      (None, 1, 1, 144)    1008        block2b_se_reduce[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block2b_se_excite (Multiply)    (None, None, None, 1 0           block2b_activation[0][0]         \n",
            "                                                                 block2b_se_expand[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block2b_project_conv (Conv2D)   (None, None, None, 2 3456        block2b_se_excite[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block2b_project_bn (BatchNormal (None, None, None, 2 96          block2b_project_conv[0][0]       \n",
            "__________________________________________________________________________________________________\n",
            "block2b_drop (Dropout)          (None, None, None, 2 0           block2b_project_bn[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block2b_add (Add)               (None, None, None, 2 0           block2b_drop[0][0]               \n",
            "                                                                 block2a_project_bn[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block3a_expand_conv (Conv2D)    (None, None, None, 1 3456        block2b_add[0][0]                \n",
            "__________________________________________________________________________________________________\n",
            "block3a_expand_bn (BatchNormali (None, None, None, 1 576         block3a_expand_conv[0][0]        \n",
            "__________________________________________________________________________________________________\n",
            "block3a_expand_activation (Acti (None, None, None, 1 0           block3a_expand_bn[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block3a_dwconv_pad (ZeroPadding (None, None, None, 1 0           block3a_expand_activation[0][0]  \n",
            "__________________________________________________________________________________________________\n",
            "block3a_dwconv (DepthwiseConv2D (None, None, None, 1 3600        block3a_dwconv_pad[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block3a_bn (BatchNormalization) (None, None, None, 1 576         block3a_dwconv[0][0]             \n",
            "__________________________________________________________________________________________________\n",
            "block3a_activation (Activation) (None, None, None, 1 0           block3a_bn[0][0]                 \n",
            "__________________________________________________________________________________________________\n",
            "block3a_se_squeeze (GlobalAvera (None, 144)          0           block3a_activation[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block3a_se_reshape (Reshape)    (None, 1, 1, 144)    0           block3a_se_squeeze[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block3a_se_reduce (Conv2D)      (None, 1, 1, 6)      870         block3a_se_reshape[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block3a_se_expand (Conv2D)      (None, 1, 1, 144)    1008        block3a_se_reduce[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block3a_se_excite (Multiply)    (None, None, None, 1 0           block3a_activation[0][0]         \n",
            "                                                                 block3a_se_expand[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block3a_project_conv (Conv2D)   (None, None, None, 4 5760        block3a_se_excite[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block3a_project_bn (BatchNormal (None, None, None, 4 160         block3a_project_conv[0][0]       \n",
            "__________________________________________________________________________________________________\n",
            "block3b_expand_conv (Conv2D)    (None, None, None, 2 9600        block3a_project_bn[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block3b_expand_bn (BatchNormali (None, None, None, 2 960         block3b_expand_conv[0][0]        \n",
            "__________________________________________________________________________________________________\n",
            "block3b_expand_activation (Acti (None, None, None, 2 0           block3b_expand_bn[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block3b_dwconv (DepthwiseConv2D (None, None, None, 2 6000        block3b_expand_activation[0][0]  \n",
            "__________________________________________________________________________________________________\n",
            "block3b_bn (BatchNormalization) (None, None, None, 2 960         block3b_dwconv[0][0]             \n",
            "__________________________________________________________________________________________________\n",
            "block3b_activation (Activation) (None, None, None, 2 0           block3b_bn[0][0]                 \n",
            "__________________________________________________________________________________________________\n",
            "block3b_se_squeeze (GlobalAvera (None, 240)          0           block3b_activation[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block3b_se_reshape (Reshape)    (None, 1, 1, 240)    0           block3b_se_squeeze[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block3b_se_reduce (Conv2D)      (None, 1, 1, 10)     2410        block3b_se_reshape[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block3b_se_expand (Conv2D)      (None, 1, 1, 240)    2640        block3b_se_reduce[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block3b_se_excite (Multiply)    (None, None, None, 2 0           block3b_activation[0][0]         \n",
            "                                                                 block3b_se_expand[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block3b_project_conv (Conv2D)   (None, None, None, 4 9600        block3b_se_excite[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block3b_project_bn (BatchNormal (None, None, None, 4 160         block3b_project_conv[0][0]       \n",
            "__________________________________________________________________________________________________\n",
            "block3b_drop (Dropout)          (None, None, None, 4 0           block3b_project_bn[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block3b_add (Add)               (None, None, None, 4 0           block3b_drop[0][0]               \n",
            "                                                                 block3a_project_bn[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block4a_expand_conv (Conv2D)    (None, None, None, 2 9600        block3b_add[0][0]                \n",
            "__________________________________________________________________________________________________\n",
            "block4a_expand_bn (BatchNormali (None, None, None, 2 960         block4a_expand_conv[0][0]        \n",
            "__________________________________________________________________________________________________\n",
            "block4a_expand_activation (Acti (None, None, None, 2 0           block4a_expand_bn[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block4a_dwconv_pad (ZeroPadding (None, None, None, 2 0           block4a_expand_activation[0][0]  \n",
            "__________________________________________________________________________________________________\n",
            "block4a_dwconv (DepthwiseConv2D (None, None, None, 2 2160        block4a_dwconv_pad[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block4a_bn (BatchNormalization) (None, None, None, 2 960         block4a_dwconv[0][0]             \n",
            "__________________________________________________________________________________________________\n",
            "block4a_activation (Activation) (None, None, None, 2 0           block4a_bn[0][0]                 \n",
            "__________________________________________________________________________________________________\n",
            "block4a_se_squeeze (GlobalAvera (None, 240)          0           block4a_activation[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block4a_se_reshape (Reshape)    (None, 1, 1, 240)    0           block4a_se_squeeze[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block4a_se_reduce (Conv2D)      (None, 1, 1, 10)     2410        block4a_se_reshape[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block4a_se_expand (Conv2D)      (None, 1, 1, 240)    2640        block4a_se_reduce[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block4a_se_excite (Multiply)    (None, None, None, 2 0           block4a_activation[0][0]         \n",
            "                                                                 block4a_se_expand[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block4a_project_conv (Conv2D)   (None, None, None, 8 19200       block4a_se_excite[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block4a_project_bn (BatchNormal (None, None, None, 8 320         block4a_project_conv[0][0]       \n",
            "__________________________________________________________________________________________________\n",
            "block4b_expand_conv (Conv2D)    (None, None, None, 4 38400       block4a_project_bn[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block4b_expand_bn (BatchNormali (None, None, None, 4 1920        block4b_expand_conv[0][0]        \n",
            "__________________________________________________________________________________________________\n",
            "block4b_expand_activation (Acti (None, None, None, 4 0           block4b_expand_bn[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block4b_dwconv (DepthwiseConv2D (None, None, None, 4 4320        block4b_expand_activation[0][0]  \n",
            "__________________________________________________________________________________________________\n",
            "block4b_bn (BatchNormalization) (None, None, None, 4 1920        block4b_dwconv[0][0]             \n",
            "__________________________________________________________________________________________________\n",
            "block4b_activation (Activation) (None, None, None, 4 0           block4b_bn[0][0]                 \n",
            "__________________________________________________________________________________________________\n",
            "block4b_se_squeeze (GlobalAvera (None, 480)          0           block4b_activation[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block4b_se_reshape (Reshape)    (None, 1, 1, 480)    0           block4b_se_squeeze[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block4b_se_reduce (Conv2D)      (None, 1, 1, 20)     9620        block4b_se_reshape[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block4b_se_expand (Conv2D)      (None, 1, 1, 480)    10080       block4b_se_reduce[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block4b_se_excite (Multiply)    (None, None, None, 4 0           block4b_activation[0][0]         \n",
            "                                                                 block4b_se_expand[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block4b_project_conv (Conv2D)   (None, None, None, 8 38400       block4b_se_excite[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block4b_project_bn (BatchNormal (None, None, None, 8 320         block4b_project_conv[0][0]       \n",
            "__________________________________________________________________________________________________\n",
            "block4b_drop (Dropout)          (None, None, None, 8 0           block4b_project_bn[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block4b_add (Add)               (None, None, None, 8 0           block4b_drop[0][0]               \n",
            "                                                                 block4a_project_bn[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block4c_expand_conv (Conv2D)    (None, None, None, 4 38400       block4b_add[0][0]                \n",
            "__________________________________________________________________________________________________\n",
            "block4c_expand_bn (BatchNormali (None, None, None, 4 1920        block4c_expand_conv[0][0]        \n",
            "__________________________________________________________________________________________________\n",
            "block4c_expand_activation (Acti (None, None, None, 4 0           block4c_expand_bn[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block4c_dwconv (DepthwiseConv2D (None, None, None, 4 4320        block4c_expand_activation[0][0]  \n",
            "__________________________________________________________________________________________________\n",
            "block4c_bn (BatchNormalization) (None, None, None, 4 1920        block4c_dwconv[0][0]             \n",
            "__________________________________________________________________________________________________\n",
            "block4c_activation (Activation) (None, None, None, 4 0           block4c_bn[0][0]                 \n",
            "__________________________________________________________________________________________________\n",
            "block4c_se_squeeze (GlobalAvera (None, 480)          0           block4c_activation[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block4c_se_reshape (Reshape)    (None, 1, 1, 480)    0           block4c_se_squeeze[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block4c_se_reduce (Conv2D)      (None, 1, 1, 20)     9620        block4c_se_reshape[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block4c_se_expand (Conv2D)      (None, 1, 1, 480)    10080       block4c_se_reduce[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block4c_se_excite (Multiply)    (None, None, None, 4 0           block4c_activation[0][0]         \n",
            "                                                                 block4c_se_expand[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block4c_project_conv (Conv2D)   (None, None, None, 8 38400       block4c_se_excite[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block4c_project_bn (BatchNormal (None, None, None, 8 320         block4c_project_conv[0][0]       \n",
            "__________________________________________________________________________________________________\n",
            "block4c_drop (Dropout)          (None, None, None, 8 0           block4c_project_bn[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block4c_add (Add)               (None, None, None, 8 0           block4c_drop[0][0]               \n",
            "                                                                 block4b_add[0][0]                \n",
            "__________________________________________________________________________________________________\n",
            "block5a_expand_conv (Conv2D)    (None, None, None, 4 38400       block4c_add[0][0]                \n",
            "__________________________________________________________________________________________________\n",
            "block5a_expand_bn (BatchNormali (None, None, None, 4 1920        block5a_expand_conv[0][0]        \n",
            "__________________________________________________________________________________________________\n",
            "block5a_expand_activation (Acti (None, None, None, 4 0           block5a_expand_bn[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block5a_dwconv (DepthwiseConv2D (None, None, None, 4 12000       block5a_expand_activation[0][0]  \n",
            "__________________________________________________________________________________________________\n",
            "block5a_bn (BatchNormalization) (None, None, None, 4 1920        block5a_dwconv[0][0]             \n",
            "__________________________________________________________________________________________________\n",
            "block5a_activation (Activation) (None, None, None, 4 0           block5a_bn[0][0]                 \n",
            "__________________________________________________________________________________________________\n",
            "block5a_se_squeeze (GlobalAvera (None, 480)          0           block5a_activation[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block5a_se_reshape (Reshape)    (None, 1, 1, 480)    0           block5a_se_squeeze[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block5a_se_reduce (Conv2D)      (None, 1, 1, 20)     9620        block5a_se_reshape[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block5a_se_expand (Conv2D)      (None, 1, 1, 480)    10080       block5a_se_reduce[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block5a_se_excite (Multiply)    (None, None, None, 4 0           block5a_activation[0][0]         \n",
            "                                                                 block5a_se_expand[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block5a_project_conv (Conv2D)   (None, None, None, 1 53760       block5a_se_excite[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block5a_project_bn (BatchNormal (None, None, None, 1 448         block5a_project_conv[0][0]       \n",
            "__________________________________________________________________________________________________\n",
            "block5b_expand_conv (Conv2D)    (None, None, None, 6 75264       block5a_project_bn[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block5b_expand_bn (BatchNormali (None, None, None, 6 2688        block5b_expand_conv[0][0]        \n",
            "__________________________________________________________________________________________________\n",
            "block5b_expand_activation (Acti (None, None, None, 6 0           block5b_expand_bn[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block5b_dwconv (DepthwiseConv2D (None, None, None, 6 16800       block5b_expand_activation[0][0]  \n",
            "__________________________________________________________________________________________________\n",
            "block5b_bn (BatchNormalization) (None, None, None, 6 2688        block5b_dwconv[0][0]             \n",
            "__________________________________________________________________________________________________\n",
            "block5b_activation (Activation) (None, None, None, 6 0           block5b_bn[0][0]                 \n",
            "__________________________________________________________________________________________________\n",
            "block5b_se_squeeze (GlobalAvera (None, 672)          0           block5b_activation[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block5b_se_reshape (Reshape)    (None, 1, 1, 672)    0           block5b_se_squeeze[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block5b_se_reduce (Conv2D)      (None, 1, 1, 28)     18844       block5b_se_reshape[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block5b_se_expand (Conv2D)      (None, 1, 1, 672)    19488       block5b_se_reduce[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block5b_se_excite (Multiply)    (None, None, None, 6 0           block5b_activation[0][0]         \n",
            "                                                                 block5b_se_expand[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block5b_project_conv (Conv2D)   (None, None, None, 1 75264       block5b_se_excite[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block5b_project_bn (BatchNormal (None, None, None, 1 448         block5b_project_conv[0][0]       \n",
            "__________________________________________________________________________________________________\n",
            "block5b_drop (Dropout)          (None, None, None, 1 0           block5b_project_bn[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block5b_add (Add)               (None, None, None, 1 0           block5b_drop[0][0]               \n",
            "                                                                 block5a_project_bn[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block5c_expand_conv (Conv2D)    (None, None, None, 6 75264       block5b_add[0][0]                \n",
            "__________________________________________________________________________________________________\n",
            "block5c_expand_bn (BatchNormali (None, None, None, 6 2688        block5c_expand_conv[0][0]        \n",
            "__________________________________________________________________________________________________\n",
            "block5c_expand_activation (Acti (None, None, None, 6 0           block5c_expand_bn[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block5c_dwconv (DepthwiseConv2D (None, None, None, 6 16800       block5c_expand_activation[0][0]  \n",
            "__________________________________________________________________________________________________\n",
            "block5c_bn (BatchNormalization) (None, None, None, 6 2688        block5c_dwconv[0][0]             \n",
            "__________________________________________________________________________________________________\n",
            "block5c_activation (Activation) (None, None, None, 6 0           block5c_bn[0][0]                 \n",
            "__________________________________________________________________________________________________\n",
            "block5c_se_squeeze (GlobalAvera (None, 672)          0           block5c_activation[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block5c_se_reshape (Reshape)    (None, 1, 1, 672)    0           block5c_se_squeeze[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block5c_se_reduce (Conv2D)      (None, 1, 1, 28)     18844       block5c_se_reshape[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block5c_se_expand (Conv2D)      (None, 1, 1, 672)    19488       block5c_se_reduce[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block5c_se_excite (Multiply)    (None, None, None, 6 0           block5c_activation[0][0]         \n",
            "                                                                 block5c_se_expand[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block5c_project_conv (Conv2D)   (None, None, None, 1 75264       block5c_se_excite[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block5c_project_bn (BatchNormal (None, None, None, 1 448         block5c_project_conv[0][0]       \n",
            "__________________________________________________________________________________________________\n",
            "block5c_drop (Dropout)          (None, None, None, 1 0           block5c_project_bn[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block5c_add (Add)               (None, None, None, 1 0           block5c_drop[0][0]               \n",
            "                                                                 block5b_add[0][0]                \n",
            "__________________________________________________________________________________________________\n",
            "block6a_expand_conv (Conv2D)    (None, None, None, 6 75264       block5c_add[0][0]                \n",
            "__________________________________________________________________________________________________\n",
            "block6a_expand_bn (BatchNormali (None, None, None, 6 2688        block6a_expand_conv[0][0]        \n",
            "__________________________________________________________________________________________________\n",
            "block6a_expand_activation (Acti (None, None, None, 6 0           block6a_expand_bn[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block6a_dwconv_pad (ZeroPadding (None, None, None, 6 0           block6a_expand_activation[0][0]  \n",
            "__________________________________________________________________________________________________\n",
            "block6a_dwconv (DepthwiseConv2D (None, None, None, 6 16800       block6a_dwconv_pad[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block6a_bn (BatchNormalization) (None, None, None, 6 2688        block6a_dwconv[0][0]             \n",
            "__________________________________________________________________________________________________\n",
            "block6a_activation (Activation) (None, None, None, 6 0           block6a_bn[0][0]                 \n",
            "__________________________________________________________________________________________________\n",
            "block6a_se_squeeze (GlobalAvera (None, 672)          0           block6a_activation[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block6a_se_reshape (Reshape)    (None, 1, 1, 672)    0           block6a_se_squeeze[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block6a_se_reduce (Conv2D)      (None, 1, 1, 28)     18844       block6a_se_reshape[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block6a_se_expand (Conv2D)      (None, 1, 1, 672)    19488       block6a_se_reduce[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block6a_se_excite (Multiply)    (None, None, None, 6 0           block6a_activation[0][0]         \n",
            "                                                                 block6a_se_expand[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block6a_project_conv (Conv2D)   (None, None, None, 1 129024      block6a_se_excite[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block6a_project_bn (BatchNormal (None, None, None, 1 768         block6a_project_conv[0][0]       \n",
            "__________________________________________________________________________________________________\n",
            "block6b_expand_conv (Conv2D)    (None, None, None, 1 221184      block6a_project_bn[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block6b_expand_bn (BatchNormali (None, None, None, 1 4608        block6b_expand_conv[0][0]        \n",
            "__________________________________________________________________________________________________\n",
            "block6b_expand_activation (Acti (None, None, None, 1 0           block6b_expand_bn[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block6b_dwconv (DepthwiseConv2D (None, None, None, 1 28800       block6b_expand_activation[0][0]  \n",
            "__________________________________________________________________________________________________\n",
            "block6b_bn (BatchNormalization) (None, None, None, 1 4608        block6b_dwconv[0][0]             \n",
            "__________________________________________________________________________________________________\n",
            "block6b_activation (Activation) (None, None, None, 1 0           block6b_bn[0][0]                 \n",
            "__________________________________________________________________________________________________\n",
            "block6b_se_squeeze (GlobalAvera (None, 1152)         0           block6b_activation[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block6b_se_reshape (Reshape)    (None, 1, 1, 1152)   0           block6b_se_squeeze[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block6b_se_reduce (Conv2D)      (None, 1, 1, 48)     55344       block6b_se_reshape[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block6b_se_expand (Conv2D)      (None, 1, 1, 1152)   56448       block6b_se_reduce[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block6b_se_excite (Multiply)    (None, None, None, 1 0           block6b_activation[0][0]         \n",
            "                                                                 block6b_se_expand[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block6b_project_conv (Conv2D)   (None, None, None, 1 221184      block6b_se_excite[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block6b_project_bn (BatchNormal (None, None, None, 1 768         block6b_project_conv[0][0]       \n",
            "__________________________________________________________________________________________________\n",
            "block6b_drop (Dropout)          (None, None, None, 1 0           block6b_project_bn[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block6b_add (Add)               (None, None, None, 1 0           block6b_drop[0][0]               \n",
            "                                                                 block6a_project_bn[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block6c_expand_conv (Conv2D)    (None, None, None, 1 221184      block6b_add[0][0]                \n",
            "__________________________________________________________________________________________________\n",
            "block6c_expand_bn (BatchNormali (None, None, None, 1 4608        block6c_expand_conv[0][0]        \n",
            "__________________________________________________________________________________________________\n",
            "block6c_expand_activation (Acti (None, None, None, 1 0           block6c_expand_bn[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block6c_dwconv (DepthwiseConv2D (None, None, None, 1 28800       block6c_expand_activation[0][0]  \n",
            "__________________________________________________________________________________________________\n",
            "block6c_bn (BatchNormalization) (None, None, None, 1 4608        block6c_dwconv[0][0]             \n",
            "__________________________________________________________________________________________________\n",
            "block6c_activation (Activation) (None, None, None, 1 0           block6c_bn[0][0]                 \n",
            "__________________________________________________________________________________________________\n",
            "block6c_se_squeeze (GlobalAvera (None, 1152)         0           block6c_activation[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block6c_se_reshape (Reshape)    (None, 1, 1, 1152)   0           block6c_se_squeeze[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block6c_se_reduce (Conv2D)      (None, 1, 1, 48)     55344       block6c_se_reshape[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block6c_se_expand (Conv2D)      (None, 1, 1, 1152)   56448       block6c_se_reduce[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block6c_se_excite (Multiply)    (None, None, None, 1 0           block6c_activation[0][0]         \n",
            "                                                                 block6c_se_expand[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block6c_project_conv (Conv2D)   (None, None, None, 1 221184      block6c_se_excite[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block6c_project_bn (BatchNormal (None, None, None, 1 768         block6c_project_conv[0][0]       \n",
            "__________________________________________________________________________________________________\n",
            "block6c_drop (Dropout)          (None, None, None, 1 0           block6c_project_bn[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block6c_add (Add)               (None, None, None, 1 0           block6c_drop[0][0]               \n",
            "                                                                 block6b_add[0][0]                \n",
            "__________________________________________________________________________________________________\n",
            "block6d_expand_conv (Conv2D)    (None, None, None, 1 221184      block6c_add[0][0]                \n",
            "__________________________________________________________________________________________________\n",
            "block6d_expand_bn (BatchNormali (None, None, None, 1 4608        block6d_expand_conv[0][0]        \n",
            "__________________________________________________________________________________________________\n",
            "block6d_expand_activation (Acti (None, None, None, 1 0           block6d_expand_bn[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block6d_dwconv (DepthwiseConv2D (None, None, None, 1 28800       block6d_expand_activation[0][0]  \n",
            "__________________________________________________________________________________________________\n",
            "block6d_bn (BatchNormalization) (None, None, None, 1 4608        block6d_dwconv[0][0]             \n",
            "__________________________________________________________________________________________________\n",
            "block6d_activation (Activation) (None, None, None, 1 0           block6d_bn[0][0]                 \n",
            "__________________________________________________________________________________________________\n",
            "block6d_se_squeeze (GlobalAvera (None, 1152)         0           block6d_activation[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block6d_se_reshape (Reshape)    (None, 1, 1, 1152)   0           block6d_se_squeeze[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block6d_se_reduce (Conv2D)      (None, 1, 1, 48)     55344       block6d_se_reshape[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block6d_se_expand (Conv2D)      (None, 1, 1, 1152)   56448       block6d_se_reduce[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block6d_se_excite (Multiply)    (None, None, None, 1 0           block6d_activation[0][0]         \n",
            "                                                                 block6d_se_expand[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block6d_project_conv (Conv2D)   (None, None, None, 1 221184      block6d_se_excite[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block6d_project_bn (BatchNormal (None, None, None, 1 768         block6d_project_conv[0][0]       \n",
            "__________________________________________________________________________________________________\n",
            "block6d_drop (Dropout)          (None, None, None, 1 0           block6d_project_bn[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block6d_add (Add)               (None, None, None, 1 0           block6d_drop[0][0]               \n",
            "                                                                 block6c_add[0][0]                \n",
            "__________________________________________________________________________________________________\n",
            "block7a_expand_conv (Conv2D)    (None, None, None, 1 221184      block6d_add[0][0]                \n",
            "__________________________________________________________________________________________________\n",
            "block7a_expand_bn (BatchNormali (None, None, None, 1 4608        block7a_expand_conv[0][0]        \n",
            "__________________________________________________________________________________________________\n",
            "block7a_expand_activation (Acti (None, None, None, 1 0           block7a_expand_bn[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block7a_dwconv (DepthwiseConv2D (None, None, None, 1 10368       block7a_expand_activation[0][0]  \n",
            "__________________________________________________________________________________________________\n",
            "block7a_bn (BatchNormalization) (None, None, None, 1 4608        block7a_dwconv[0][0]             \n",
            "__________________________________________________________________________________________________\n",
            "block7a_activation (Activation) (None, None, None, 1 0           block7a_bn[0][0]                 \n",
            "__________________________________________________________________________________________________\n",
            "block7a_se_squeeze (GlobalAvera (None, 1152)         0           block7a_activation[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block7a_se_reshape (Reshape)    (None, 1, 1, 1152)   0           block7a_se_squeeze[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block7a_se_reduce (Conv2D)      (None, 1, 1, 48)     55344       block7a_se_reshape[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block7a_se_expand (Conv2D)      (None, 1, 1, 1152)   56448       block7a_se_reduce[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block7a_se_excite (Multiply)    (None, None, None, 1 0           block7a_activation[0][0]         \n",
            "                                                                 block7a_se_expand[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block7a_project_conv (Conv2D)   (None, None, None, 3 368640      block7a_se_excite[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block7a_project_bn (BatchNormal (None, None, None, 3 1280        block7a_project_conv[0][0]       \n",
            "__________________________________________________________________________________________________\n",
            "top_conv (Conv2D)               (None, None, None, 1 409600      block7a_project_bn[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "top_bn (BatchNormalization)     (None, None, None, 1 5120        top_conv[0][0]                   \n",
            "__________________________________________________________________________________________________\n",
            "top_activation (Activation)     (None, None, None, 1 0           top_bn[0][0]                     \n",
            "==================================================================================================\n",
            "Total params: 4,049,571\n",
            "Trainable params: 0\n",
            "Non-trainable params: 4,049,571\n",
            "__________________________________________________________________________________________________\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "XZyIF_Zlu63C"
      },
      "source": [
        "You can see how each of the different layers have a certain number of parameters each. Since we are using a pre-trained model, you can think of all of these parameters are patterns the base model has learned on another dataset. And because we set `base_model.trainable = False`, these patterns remain as they are during training (they're frozen and don't get updated).\n",
        "\n",
        "Alright that was the base model, let's see the summary of our overall model."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "KGY1BjnzJDEx",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "67952c6a-3b30-4296-95d0-259e3abd3854"
      },
      "source": [
        "# Check summary of model constructed with Functional API\n",
        "model_0.summary()"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Model: \"model\"\n",
            "_________________________________________________________________\n",
            "Layer (type)                 Output Shape              Param #   \n",
            "=================================================================\n",
            "input_layer (InputLayer)     [(None, 224, 224, 3)]     0         \n",
            "_________________________________________________________________\n",
            "efficientnetb0 (Functional)  (None, None, None, 1280)  4049571   \n",
            "_________________________________________________________________\n",
            "global_average_pooling_layer (None, 1280)              0         \n",
            "_________________________________________________________________\n",
            "output_layer (Dense)         (None, 10)                12810     \n",
            "=================================================================\n",
            "Total params: 4,062,381\n",
            "Trainable params: 12,810\n",
            "Non-trainable params: 4,049,571\n",
            "_________________________________________________________________\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "ZmoVfJqgKoY5"
      },
      "source": [
        "Our overall model has five layers but really, one of those layers (`efficientnetb0`) has 236 layers.\n",
        "\n",
        "You can see how the output shape started out as `(None, 224, 224, 3)` for the input layer (the shape of our images) but was transformed to be `(None, 10)` by the output layer (the shape of our labels), where `None` is the placeholder for the batch size.\n",
        "\n",
        "Notice too, the only trainable parameters in the model are those in the output layer.\n",
        "\n",
        "How do our model's training curves look?\n",
        "\n"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "tWYqK_86xSUJ",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 573
        },
        "outputId": "816526b9-c38f-4319-8a8e-2e1846aa87cb"
      },
      "source": [
        "# Check out our model's training curves\n",
        "plot_loss_curves(history_10_percent)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAEWCAYAAAB2X2wCAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3deVxUddvH8c/FLgKKLKKi4oLirkUumebSYmVaZpqWlW1P1t1mWd3d7cvTatvd4lNmtqeZlZalmZaZZqKCigsuuSAoiApuyPZ7/jijobLKwGFmrvfrxQuYc+bMxeh8+fGb37mOGGNQSinl+rzsLkAppZRzaKArpZSb0EBXSik3oYGulFJuQgNdKaXchAa6Ukq5CQ10pZRyExroyiOIyDYRucDuOpSqThroSinlJjTQlccSEX8ReV1E0hwfr4uIv2NbuIh8LyIHRGSfiPwuIl6ObQ+JyC4ROSgiG0VkoL0/iVIWH7sLUMpG/wF6Al0BA3wHPAo8BtwPpAIRjn17AkZE2gL/As4xxqSJSAzgXbNlK1UyHaErT3Yt8LQxJsMYkwk8BYxxbMsHGgHNjTH5xpjfjdX4qBDwB9qLiK8xZpsxZost1St1Cg105ckaA9uLfb/dcRvAy8BmYJ6IbBWRhwGMMZuBe4EngQwR+VJEGqNULaCBrjxZGtC82PfNHLdhjDlojLnfGNMSGAKMPz5Xboz53BhznuO+BnixZstWqmQa6MqT+IpIwPEP4AvgURGJEJFw4HHgUwARGSwirUVEgGysqZYiEWkrIgMcb57mAkeBInt+HKVOpoGuPMkcrAA+/hEAJACrgTXASuBZx76xwHzgELAUeMcYsxBr/vwFYC+wG4gE/l1zP4JSpRO9wIVSSrkHHaErpZSb0EBXSik3oYGulFJuQgNdKaXchG2n/oeHh5uYmBi7Hl4ppVzSihUr9hpjIkraZlugx8TEkJCQYNfDK6WUSxKR7aVt0ykXpZRyExroSinlJjTQlVLKTWg/dKXUSfLz80lNTSU3N9fuUjxaQEAA0dHR+Pr6Vvg+GuhKqZOkpqYSHBxMTEwMVm8yVdOMMWRlZZGamkqLFi0qfD+dclFKnSQ3N5ewsDANcxuJCGFhYZX+K0kDXSl1Gg1z+53Jv4HLBXp69lGenJVMfqG2oFZKqeJcLtCTdmYzdck2/rtgs92lKKVUreJygT6oYxTDujXh7YWbSdx5wO5ylFJOduDAAd55551K3+/SSy/lwIGyM+Hxxx9n/vz5Z1paiYKCgpx6vKpwuUAHeGJIByKD/Rk/PZGjeYV2l6OUcqLSAr2goKDM+82ZM4f69euXuc/TTz/NBRdcUKX6ajOXXLZYr44vLw/vwnUfLOPFnzbw5JAOdpeklFt6anYy69JynHrM9o1DeOLy0l+zDz/8MFu2bKFr1674+voSEBBAaGgoGzZsICUlhSuuuIKdO3eSm5vLPffcw2233Qb80x/q0KFDXHLJJZx33nksWbKEJk2a8N1331GnTh1uvPFGBg8ezPDhw4mJieGGG25g9uzZ5Ofn89VXXxEXF0dmZiajR48mLS2NXr168fPPP7NixQrCw8PL/LmMMTz44IP8+OOPiAiPPvooI0eOJD09nZEjR5KTk0NBQQHvvvsu5557LjfffDMJCQmICDfddBP33XdflZ9blxyhA5wXG86N58Ywdck2/ti81+5ylFJO8sILL9CqVSsSExN5+eWXWblyJW+88QYpKSkATJkyhRUrVpCQkMCbb75JVlbWacfYtGkTd955J8nJydSvX5+vv/66xMcKDw9n5cqVjBs3jldeeQWAp556igEDBpCcnMzw4cPZsWNHheqeOXMmiYmJJCUlMX/+fCZMmEB6ejqff/45F1988YltXbt2JTExkV27drF27VrWrFnD2LFjz/DZOplLjtCPe2hQHItSMpnwVRI/3deXkICKn1GllCpfWSPpmtK9e/eTTq558803+eabbwDYuXMnmzZtIiws7KT7tGjRgq5duwJw9tlns23bthKPPWzYsBP7zJw5E4DFixefOP6gQYMIDQ2tUJ2LFy9m1KhReHt707BhQ84//3yWL1/OOeecw0033UR+fj5XXHEFXbt2pWXLlmzdupW77rqLyy67jIsuuqjiT0gZXHaEDlDHz5uJI7qwOyeXp2ats7scpVQ1qFu37omvf/31V+bPn8/SpUtJSkqiW7duJZ584+/vf+Jrb2/vUuffj+9X1j5V1bdvXxYtWkSTJk248cYb+fjjjwkNDSUpKYl+/foxadIkbrnlFqc8lksHOkC3ZqHc2b81X69M5ae1u+0uRylVRcHBwRw8eLDEbdnZ2YSGhhIYGMiGDRv4888/nf74vXv3Zvr06QDMmzeP/fv3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\n",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": [],
            "needs_background": "light"
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAEWCAYAAAB2X2wCAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3deXxU5dn/8c9FVggkYYckQEC2kEDYBJEqiFJxAVdUigooWq36VH2q1WoBrfVn26ePj7tVa10RFTekuCEgWldUQBK2ELawZIMkhCXr9fvjTIYQE0ggmTMzud6vV17MnHPmnCsnzDcn932fe0RVMcYYE/hauF2AMcaYxmGBbowxQcIC3RhjgoQFujHGBAkLdGOMCRIW6MYYEyQs0I0xJkhYoJuAIyLLRGSviES4XYsx/sQC3QQUEUkETgMUmOTD44b66ljGHC8LdBNorga+Bl4AplUtFJFuIvK2iOSKSL6IPF5t3XUislZE9olIuogM9SxXEeldbbsXROQBz+OxIpIlIr8Xkd3Av0SkrYgs9Bxjr+dxQrXXtxORf4nITs/6dz3L14jIxGrbhYlInogMabKzZJolC3QTaK4GXvV8nS0inUUkBFgIbAUSgXhgHoCITAbmeF4XjXNVn1/PY3UB2gE9gOtx3i//8jzvDhwEHq+2/ctAKyAZ6AQ87Fn+EnBlte3OBXap6o/1rMOYehGby8UEChH5BbAU6KqqeSKyDvgHzhX7As/y8hqv+QhYpKqP1LI/Bfqoaobn+QtAlqreKyJjgY+BaFU9VEc9g4GlqtpWRLoCO4D2qrq3xnZxwHogXlWLRGQ+8K2q/vW4T4YxtbArdBNIpgEfq2qe5/lcz7JuwNaaYe7RDdh0nMfLrR7mItJKRP4hIltFpAhYDsR6/kLoBuypGeYAqroT+A9wiYjEAufg/IVhTKOyjh4TEESkJXAZEOJp0waIAGKBbKC7iITWEurbgZPq2O0BnCaSKl2ArGrPa/75+t9AP2Ckqu72XKH/CIjnOO1EJFZVC2o51ovATJz33FequqPu79aY42NX6CZQXAhUAAOAwZ6vJOBzz7pdwEMiEiUikSIy2vO654DficgwcfQWkR6edSuBX4lIiIhMAMYco4Y2OO3mBSLSDphdtUJVdwEfAE96Ok/DROT0aq99FxgK/BanTd2YRmeBbgLFNOBfqrpNVXdXfeF0Sk4BJgK9gW04V9mXA6jqm8CfcZpn9uEEazvPPn/reV0BMNWz7mj+D2gJ5OG0239YY/1VQBmwDsgBbq1aoaoHgbeAnsDbDfzejakX6xQ1xkdEZBbQV1WvPObGxhwHa0M3xgc8TTTX4lzFG9MkrMnFmCYmItfhdJp+oKrL3a7HBC9rcjHGmCBhV+jGGBMkXGtD79ChgyYmJrp1eGOMCUjff/99nqp2rG2da4GemJjIihUr3Dq8McYEJBHZWtc6a3IxxpggYYFujDFBwgLdGGOChAW6McYECQt0Y4wJEhboxhgTJCzQjTEmSNjkXMYY/6cKlRWglaCef73PK2s8rzj6Ou9zrfH8aOuqv7ayluPUsu5nr632PfSbAPHDGv00WaAbY36ushJKiuBQARzcW+2r4MjHhwqcfyvLjxG0xxGW1V8bVATadLFAN8Y0UHnpMUJ5b431BYeXaWXd+w1rBZGx0LItRMZAaARIC2gR4vwrnn9btKjxvNr6Ote1qGNfIcdYJ3Uc5yjr6qzxWPXXUke965cm+3FboBvj71ShtLjuUP5ZIFd7Xrb/KDsWJ4xbtvV8xULbxMPPqwK7+vqq5WGRvvrug46qUqkQ0qLxg90C3RhfqSivFr5Hu0quJbAra372dTUhEUcGb2w36DqoWijH/jyUW7aFiBjnCtQ0mYpKZXPeftJ2FpK+s4g1OwtJ21nE7IkDuGhIQqMfzwLdmIZQhbIDDQxlz7+l+46+74iYaoEbCzHxdVwt17hyDmvpm+/dHFVpeSUbsveR5gnttJ1FrN1VxIFSpw8gPKQFfbu05uwBXejWtlWT1GCBbgw4nW97NkNOGuRtgAN76g7sitK699Mi7MjgjY6DzsnHDuWIaAixt2Og2F9SztpdTmiv2eEE+MacfZRVOB8YFBUewoC4aC4b3o0BcdEkx0XTp1MbwkOb9i8i+x9kmp/9+ZC9BnLSnX+z0yBnHZQfPLxNeBtP2HramDv1P3q7ctW68Kgm7fQyvrd3f6kT3N4r70I25+2n6sPe2kWFkxwXzWl9e5ISF0NyXDSJ7aNo0QRt5MdigW6CV3kJ5K73BHaa8292GhRnH96mVQfnCnr4NdB5gPO4Qz8Ib5o/iY3/UlV2FR7yhvaaHUWk7yxkZ+Eh7zZxMZEkx8cwKTWOZE94d42JRPzkl7gFugl8qlCY5QnsqivvNMjbeHgMc0gEdOwHJ53phHbnAdA5BVp3crd244rKSmVL/n7WeMI73dPmvWe/05wmAj07RDEssR3T4qJJjothQFw07aLCXa786CzQTWA5VAQ5a6s1laRDdjqUFB7eJrY7dEqG/ud7wjsZ2p1kbdTNVGl5JRtz9pG2s8gZabKjkLW7itjv6awMCxH6dm7DWUmdvFfdSV2jiYoIvP8vgVexaR4qymHPpsPNJFXNJgXbDm8TEe2E9cBLPcGdAp2SIDLavbqNqw6UlrN2l2ekyY4i0nYVsmF3MaUVzk1SrcJDSOoazSXDEkjxXHX37dz0nZW+YoFu3Fec47niTj/cbJK7HipKnPUSAh36QMLJMGy6c/XdORliEqwDshkrOFB6RHt32s5CMqt1Vsa2CiMlLoYZoxM9I01i6Nkhqklu6PEXFujGd8oOQu46T2hXG2FyIO/wNq27OO3bvcZ4rrgHOG3foRHu1W1cpapkF5V4hwdWjfPeUXB4VFLXmEiS46I5f1AcyXHRJMfHEOdHnZW+YoFuGl9lJRRuO7K5JDvNaUKpmh8ktKXTPNJvghPcnZOdK++o9u7WblxVWals3XPAG9prdjgdlvn7D4/979UhiiHdY7nylB5OeMdF0761/cIHC3Rzog4WHB5VUtVskpPuzD0CgDjzg3ROhpSLD7d1t010JisyzVZZRSUZOcXeK+/0nUWk7yqiuMSZ5iC0hdCncxvG9e/kvepO6hpN6wDsrPQVOzOmfirKnGGA1W/GyU6HoqzD20TGOmE9eOrhYYEd+0NEa/fqNn7hYGkFa3cXeYLbafNen72P0nLnL7aWYSEkdW3DRUPiSY6LJiU+hj6dWxMRar/0G8IC3RxJFfbt/vnNOLnrobLM2aZFmNOu3ePUw8MCOydDm67WSWkoPFBG2i7PKBNP08mm3GIqPZ2VMS3DSI6LZvqpid4mk54dWgd1Z6WvWKA3Z6X7nVveq9+Mk73Gma+kSnS8E9a9zzrc1t2+N4T69w0Wxjfyikv4KavQ22yyZmchWXsPd1Z2iXY6K89J6cKAuBhS4qOJj23Z7DorfcUCvTmorIC9W6p1UHoCfM9mwHPZFN7a6aQccMHhYYGdBzhzlBgDFJeU81NWIauyClidVcCq7YVHjDRJbN+K1G6x/Gpkd+8NOh2ss9KnLNCD3fcvwEf3Hp66VVo4d012GQipU5xhgZ2TIbaHzY1tvErKK1i3ax+rPMG9KquATbnF3jHe3dq1ZHD3WKad2oNBCbEkx0XTJjLM3aKNBXrQUoWlD8Lyv0KvsTBwsmdMd3+beMocoaJSycwtZuX2AlZ7rsDX7iryTgXboXU4gxJimTgojkHdYhgUH2PDBP2UBXowqiiD92+Fla/A0KvhvIdtHhMDODfp7Cg4yKrthazOKmDl9gLW7Cj0zmvSOiKUlPhorvlFT1ITYhmUEGNt3gHE3uXBpqQY3pwOGZ/A2LthzO9t5Ekzll9c4r3qXuW5Aq+6SSc8pAVJXdtwybAEBiXEkpoQQ6+ONtokkFmgB5PiXJg7GXathomPwrBpbldkfGh/STk/7Sj0dliuyirwjjgRgd4dW3NG/06kJsQwKCGW/l3b2DjvIGOBHizyN8ErlzhjyK+Y69xSb4JWaXkl63YXsSqr0HPlXcDGnMOdlvGxLRncLZarTulBardYUuJj7A7LZsB+wsEg63uYexmgMH0hJAx3uyLTiCorlcy8Yu9V96qsQtbuLPJOCdsuKpzUhBjOSenK4G6xDEyIseGCzZQFeqDb8JHTZt66E1z5NrQ/ye2KzAlQVXYWHmL19gJWZhWwenshP+0o9M5vEhUeQkp8DNNHJ3o7LRPaWqelcdQr0EVkAvAIEAI8p6oP1VjfHXgRiPVsc5eqLmrkWk1NP7zkjGbpMhCmvmkfpxaA9uwvdW7U8Yw6WZVVQF6x02kZFiIkdY3moiHxDEqIIbVbLCdZp6U5imMGuoiEAE8A44Es4DsRWaCq6dU2uxd4Q1WfEpEBwCIgsQnqNeCMMf/sr7DsQeeW/Mkv2gRYAWB/STlrdhQeHnWSVcD2PYc7LU/q2JoxfTuR2s3ptEyyTkvTQPW5Qh8BZKhqJoCIzAMuAKoHugJVn/sVA+xszCJNNRXl8O/b4YcXnVkNJz4CIXaHnr8pLa9k/e59R9wmvzFnn3eCqvjYlqR2i2HqyB4MSohhYHyM3WlpTlh9Aj0e2F7teRYwssY2c4CPReQWIAo4q7Ydicj1wPUA3bt3b2itpnQ/zL8GNnwIp98BZ9xjY8z9gNNpuZ/VWc4475XbC0jfVeSdGrZtqzBSu8VydkoX75DBjm2s09I0vsbqFJ0CvKCqfxeRUcDLIpKiWvXxNA5VfQZ4BmD48OHaSMduHvbnwdzLYecPcN7/wsnXul1Rs6Sq7Co85GnvdoYM/pRVyD5Pp2UrT6fltFHOHCeDu8Vap6XxmfoE+g6gW7XnCZ5l1V0LTABQ1a9EJBLoAOQ0RpHN3p7Nzhjzoh1w+SvQ/zy3K2o2Cg6UsiqrkNXbC7xDBnP3OR9eHRYi9O8SzaTBcaR2iyU1IZbenazT0rinPoH+HdBHRHriBPkVwK9qbLMNOBN4QUSSgEggtzELbbZ2/givTobKcpj2PnQb4XZFQW3P/lLe/XEHP3pu1tmaf8C77qSOUZzWuwOp3Zzhgkldo4kMs05L4z+OGeiqWi4iNwMf4QxJfF5V00TkfmCFqi4A/ht4VkRuw+kgna6q1qRyojYuhjeudj44+cq3oUMftysKWrn7Snju80xe/norB0oriIuJZFBCLFec3J3UhBhSEmKItk5L4+fq1YbuGVO+qMayWdUepwOjG7e0Zm7lXFhwi/OhE1PnQ5sublcUlLKLDvH0Z5t47dttlJZXMik1jpvO6E2fzm3cLs2YBrM7Rf2NKnz+d1jyJ+h1Blz2EkRGH/t1pkF2FBzk6WWbeH3FdioqlYuGxHPTGb3p2SHK7dKMOW4W6P6ksgIW3QEr/gmDLodJj9tndzaybfkHeHJZBm/9kAXApcMSuHFMb7q3tw/9MIHPAt1flB2Et2bCuoXwi9vgzNk2xrwRZeYW88TSTby7cgchLYQpI7rz6zEnER/b0u3SjGk0Fuj+4MAeZ4x51ndwzt9g5PVuVxQ0Nmbv4/GlGby/aifhoS2YNiqRX4/pRefoSLdLM6bRWaC7be9WZ4x5wTanvXzAJLcrCgrpO4t4fOlGPlizm5ZhIVx3ei+uO62XTStrgpoFupt2rXLGmJeXwNXvQY9RblcU8H7KKuTRJRv5JD2bNhGh3DS2N9f8oiftoqwvwgQ/C3S3bFoKr18FkTFwzQLo1N/tigLa91v38tiSjSxbn0tMyzBuO6sv00cnEtPSxo6b5sMC3Q2rXof3fgMd+zvzmEfHuV1RwPomM5/HlmTwRUYe7aLCuePsflw9qofNXGiaJQt0X1KF/zwCi2dD4mlwxavOFbppEFXly035PPLpRr7dvIcOrSO459wkpp7SnVbh9l/aNF/2v99XKivgw7vh239AyqVw4ZMQah10DaGqLNuQy2OfbuSHbQV0jo5g9sQBTBnR3eZUMQYLdN8oOwRvXwdrF8Cpt8BZ90OLFm5XFTBUlcVrc3hsyUZWZxUSH9uSP12YwuRhCRbkxlRjgd7UDuyBeVNh21cw4SE45Ua3KwoYlZXKh2m7eWxJBmt3FdG9XSv+cslALhqSQHio/UI0piYL9KZUsN0ZY753M1z6PKRc7HZFAaGiUlm4eidPLM1gQ3YxvTpE8ffJqVwwOI7QEAtyY+pigd5Udq+BVy+F0gNw1TuQ+Au3K/J75RWVvLtyJ08uzSAzbz99O7fm0SlDOG9gV/vQCGPqwQK9KWR+Bq9fCeGt4ZoPofMAtyvya6Xllbz9QxZPLMtg+56DJHWN5qmpQzk7uQstLMiNqTcL9Mb203x45wZo3xuunA8xCW5X5LcOlVXw5ortPP1ZJjsKDpKaEMPs85M5M6mTfQanMcfBAr0xffkYfHwv9PiFM8a8ZazbFfmlg6UVvPbtNv6xfBPZRSUM69GWP1+Uwpi+HS3IjTkBFuiNobISPr4Hvn4SBlwIF/0Dwmw2v5r2l5Tz6jdbeWZ5JnnFpYzs2Y6HLxvMqJPaW5Ab0wgs0E9U2SF49wZIewdO+Q388s82xryGfYfKeOmrrTz3eSZ7D5RxWp8O3DKuDyN6tnO7NGOCigX6iThY4Iwx3/oF/PIB56Yh41V4oIx/fbmZ57/YTNGhcs7o15FbzuzD0O5t3S7NmKBkgX68Cnc4Y8zzM+CSf8LAS92uyG/s2V/KP7/I5KUvt7KvpJzxAzrzX+P6MDDB5q0xpilZoB+P7HRnjHnJPrjyLeg1xu2K/ELuvhKe+zyTl7/eysGyCs5N6crN43qT1NU+5NoYX7BAb6gtX8C8X0FoS5ixCLoMdLsi12UXHeLpzzbx2rfbKC2vZGJqHDef0Zs+ndu4XZoxzYoFekOkvQNvXw9tezpjzGO7u12Rq3YUHOTpZZt4fcV2KiqVi4bEc9MZvenZIcrt0oxplizQ6+vrp5zpb7uNhCmvQavmO0JjW/4BnlyWwVs/ZAFw6bAEbhzTm+7tW7lcmTHNmwX6sVRWwuJZzk1DSRPh4mchrKXbVbkiM7eYJ5Zu4t2VOwhpIUwZ0Z1fjzmJ+NjmeT6M8TcW6EdTXgLv/gbWzIeTr4Nz/gItmt/82xuy9/H4kgwWrt5JeGgLpo1K5NdjetE52m6eMsafWKDX5VChM8HW5uVw1hwYfSs0s7sZ03cW8fjSjXywZjctw0K47vRezPxFLzq2sU9aMsYfWaDXpmiXMywxd51zG3/qFW5X5FOrswp49NMMFq/Npk1EKDeN7c01v+hJu6hwt0szxhyFBXpNueudG4YO7oWpb8JJ49yuyGe+37qXx5ZsZNn6XKIjQ7n1rD7MOLUnMa3C3C7NGFMPFujVbf0KXrvC+fDmGYuga6rbFfnEN5n5PLYkgy8y8mjbKow7zu7H1aN60CbSgtyYQGKBXiV9Abw1E2K7OXd/tk10u6Impap8uSmfRz7dyLeb99ChdQR/OLc/U0f2ICrC/lsYE4jsnQvwzTPwwZ2QcDJMmQdR7d2uqMmoKss25PLYpxv5YVsBnaMjmD1xAFNGdCcyrPmN4DEmmDTvQFeFT++DLx6Gfuc6k2yFB+fNMarKJ+nZPL40g9VZhcTHtuRPF6YweViCBbkxQaL5Bnp5KSy4BVbPg+HXwDl/g5DgOx2qyodrdvPokgzW7iqie7tW/OWSgVw0JIHwUJu33ZhgEnwJVh8l++D1qyBzKYy7F077XdCOMf/nF5t54N9r6dUhir9PTuWCwXGEhliQGxOMml+g78t2xphnp8EFT8KQqW5X1GR2FR7kfz/ZwBn9OvLctJMJaRGcv7SMMY56XaqJyAQRWS8iGSJyVy3rHxaRlZ6vDSJS0PilNoK8jfDPsyB/E/zqjaAOc4A//3stFZXKfZNSLMyNaQaOeYUuIiHAE8B4IAv4TkQWqGp61Taqelu17W8BhjRBrSdm+7cw9zJoEQrTF0L8ULcralL/ychj4epd3HZWX5sF0Zhmoj5X6COADFXNVNVSYB5wwVG2nwK81hjFNZp1/4YXJ0LLtnDtx0Ef5qXllcx6bw3d27Xi12N6uV2OMcZH6hPo8cD2as+zPMt+RkR6AD2BJXWsv15EVojIitzc3IbWenxWPO9MstU5Ga79BNoFf8D984vNbMrdz5xJA2xIojHNSGMPd7gCmK+qFbWtVNVnVHW4qg7v2LFjIx/6ZweDJQ/Awtug93iY9j5EdWjaY/qBnQUHefTTjYwf0Jlx/Tu7XY4xxofqM8plB9Ct2vMEz7LaXAHcdKJFnbCKMnj/t7DyVRh6NZz3cFCOMa/NA/9Op1KVWecPcLsUY4yP1ecK/Tugj4j0FJFwnNBeUHMjEekPtAW+atwSG6ik2Jlga+WrMPZumPhoswnz5RtyWfTTbm4+ozfd2llHqDHNzTGTTlXLReRm4CMgBHheVdNE5H5ghapWhfsVwDxV1aYr9xiKc+DVybD7JyfIh01zrRRfKymvYM6CNBLbt+J66wg1plmq16Wrqi4CFtVYNqvG8zmNV9ZxyN8Er1zshPqU16Dv2a6W42vPfb6ZzLz9vDDjZCJCrSPUmOYoONoisr6HuZOdx9MWQsIwd+vxsay9B3hsyUYmJHdhbL9ObpdjjHFJ4E/qsf5DePF8iGjjDEtsZmEO8KeFzj1ef5xoHaHGNGeBHejfvwjzpkCHvk6Ytz/J7Yp8bun6HD5Ky+aWcX2Ij23pdjnGGBcFZpOLKix7CD57CHqfBZNfhIjWblflc4fKnI7QXh2juO406wg1prkLvECvKIeFt8KPL8PgqTDxEQhpnp99+ezyTLbmH+Dla0fY3ObGmAAM9GX/zwnz0++AM+4J2nnMj2X7ngM8vjSD8wZ25bQ+TXzXrTEmIAReoJ96M3TsD4Mmu12Jq+57P52QFsK95ye5XYoxxk8E3t/pLds2+zD/dG02i9dm819n9qFrjHWEGmMcgRfozdyhsgrmvJ9G706tuWZ0T7fLMcb4kcBrcmnmnv5sE9v3HGTuzJHWEWqMOYIlQgDZln+AJ5dtYmJqHKf2Dv6pgI0xDWOBHiBUlTnvpxHWQrjnXOsINcb8nAV6gFi8Nocl63K49ay+dImJdLscY4wfskAPAAdLnTtC+3ZuzfTRiW6XY4zxU9YpGgCeWpbBjoKDzLv+FMJC7HewMaZ2lg5+bkvefp7+LJMLB8dxSq/2bpdjjPFjFuh+rKojNDy0BX+wjlBjzDFYoPuxj9KyWbY+l9vG96VTtHWEGmOOzgLdTx0oLedPC9Pp36UN00b1cLscY0wAsE5RP/XEUqcj9I1fjyLUOkKNMfVgSeGHMnOLeWZ5JhcPjWdEz3Zul2OMCRAW6H5GVZm9II3I0BDuPsc6Qo0x9WeB7mc+XLObzzfm8d+/7EvHNhFul2OMCSAW6H5kf0k59y9MJ6lrNFeeYh2hxpiGsUD3I48tyWBX4SH+dEGydYQaYxrMUsNPZOTs47nPM7l0WALDE60j1BjTcBbofqCqI7RVeAh3ndPf7XKMMQHKAt0P/PunXfwnI587zu5Hh9bWEWqMOT4W6C4rLnHuCE2Oi+ZXI60j1Bhz/OxOUZc9+ulGsotKeOrKYYS0ELfLMcYEMLtCd9GG7H08/8VmLh/ejaHd27pdjjEmwFmgu0RVmfXeGqIiQvm9dYQaYxqBBbpLFqzaydeZe7hzQj/aRYW7XY4xJghYoLtg36Ey/vzvtQxKiOGKk7u7XY4xJkhYp6gLHlm8kdziEp69erh1hBpjGo1dofvYut1F/OvLLVxxcndSu8W6XY4xJojUK9BFZIKIrBeRDBG5q45tLhORdBFJE5G5jVtmcFBVZr2bRnRkKHee3c/tcowxQeaYTS4iEgI8AYwHsoDvRGSBqqZX26YPcDcwWlX3ikinpio4kL27cgffbtnDQxcPpK11hBpjGll9rtBHABmqmqmqpcA84IIa21wHPKGqewFUNadxywx8RYfK+PO/15HaLZbLhndzuxxjTBCqT6DHA9urPc/yLKuuL9BXRP4jIl+LyITGKjBYPPzJBvL3l/DABSm0sI5QY0wTaKxRLqFAH2AskAAsF5GBqlpQfSMRuR64HqB79+YzXC99ZxEvfrmFqSO7MzAhxu1yjDFBqj5X6DuA6m0ECZ5l1WUBC1S1TFU3AxtwAv4IqvqMqg5X1eEdO3Y83poDSmWlc0dobKtwfvdL6wg1xjSd+gT6d0AfEekpIuHAFcCCGtu8i3N1joh0wGmCyWzEOgPW2z/uYMXWvdx1Tn9iW1lHqDGm6Rwz0FW1HLgZ+AhYC7yhqmkicr+ITPJs9hGQLyLpwFLgDlXNb6qiA0XhwTL+36K1DO0ey6VDE9wuxxgT5OrVhq6qi4BFNZbNqvZYgds9X8bjfz9ez94Dpbx4zQjrCDXGNDm7U7SJrNlRyMtfb+WqU3qQEm8docaYpmeB3gSqOkLbtgrndusINcb4iAV6E5j/fRY/bCvg7nOTiGkZ5nY5xphmwgK9kRUcKOWhD9dxcmJbLhla8/4rY4xpOhbojex/Pl5P4cEy7r8gBRHrCDXG+I4FeiP6KauQV7/ZxtWjepDUNdrtcowxzYwFeiOprFTufW8N7aMiuG18X7fLMcY0QxbojeSNFdtZtb2Ae87rT3SkdYQaY3zPAr0R7N1fyl8+XMeInu24cLB1hBpj3GGB3gj++tF6ig6V8yfrCDXGuMgC/QSt3F7AvO+2MePURPp1aeN2OcaYZswC/QRUeO4I7dg6gt+e9bPZgo0xxqcs0E/AvO+2sTqrkHvOS6KNdYQaY1xmgX6c9uwv5a8frmdUr/ZMSo1zuxxjjLFAP15/+WAd+0vKuf+CZOsINcb4BQv04/DDtr28vmI71/6iJ306W0eoMcY/WKA3UEWl8sd319AlOpJbzrSOUGOM/7BAb6C532wlbWcR956fROuIen3gkzHG+IQFegPkFZfwt4/WM7p3e84b2NXtcowx5ggW6A3wlw/WcbCsgvsm2R2hxhj/Y4FeTyu27OHN77OYeVovendq7XY5xhjzMxbo9VBeUckf30sjLiaSW8b1drscY4yplQV6Pbzy9VbW7irij+cPoFW4dYQaY/yTBfox5O4r4e8fb+C0Ph2YkNLF7XKMMaZOFujH8EvwDawAABRMSURBVP8+WEtJeSX3TbI7Qo0x/s0C/Si+3byHt3/YwfWn96JXR+sINcb4Nwv0OpRXVDLrvTXEx7bkpjOsI9QY4/8s0Ovw4ldbWbd7H7MmDqBleIjb5RhjzDFZoNcip+gQD3+ygbH9OvLLAZ3dLscYY+rFAr0WDy5aS2l5JXMmWkeoMSZwWKDX8HVmPu+u3MkNY3qR2CHK7XKMMabeLNCrKfN0hCa0bclvrCPUGBNg7LbHal74zxY2ZBfz3NXDiQyzjlBjTGCxK3SP3YWH+L/FGzizfyfOso5QY0wAskD3+POitZRVKrMnJrtdijHGHBcLdODLjDzeX7WT34w9ie7tW7ldjjHGHJdmH+il5ZXMWpBG93atuGHMSW6XY4wxx61egS4iE0RkvYhkiMhdtayfLiK5IrLS8zWz8UttGv/6z2YycoqZM2mAdYQaYwLaMUe5iEgI8AQwHsgCvhORBaqaXmPT11X15iaoscnsKjzII59uZPyAzozrbx2hxpjAVp8r9BFAhqpmqmopMA+4oGnL8o0HFq6lolKZdf4At0sxxpgTVp9Ajwe2V3ue5VlW0yUislpE5otIt9p2JCLXi8gKEVmRm5t7HOU2ns835vLvn3Zx8xm96dbOOkKNMYGvsW4seh94TVVLROTXwIvAuJobqeozwDMAw4cP10Y6doOVlFcw+700Etu34rrTe7lVhjENUlZWRlZWFocOHXK7FOMDkZGRJCQkEBYWVu/X1CfQdwDVr7gTPMu8VDW/2tPngL/WuwIX/POLzWTm7eeFGSdbR6gJGFlZWbRp04bExESbNC7IqSr5+flkZWXRs2fPer+uPk0u3wF9RKSniIQDVwALqm8gIl2rPZ0ErK13BT62o+Agj32awYTkLozt18ntcoypt0OHDtG+fXsL82ZARGjfvn2D/xo75hW6qpaLyM3AR0AI8LyqponI/cAKVV0A/JeITALKgT3A9IZ+A77yp/fTUZQ/TrSOUBN4LMybj+P5WderDV1VFwGLaiybVe3x3cDdDT66jy1bn8OHabu54+x+xMe2dLscY4xpVM3mTtGS8grmLEijV4coZp5W/zYpY4wJFM0m0J9dnsmW/APcd0EyEaHWEWpMQxUUFPDkk082+HXnnnsuBQUFR91m1qxZLF68+HhLMx7NYj707XsO8PjSDM4b2JXT+nR0uxxjTth976eRvrOoUfc5IC76qLONVgX6b37zmyOWl5eXExpad5QsWrSoznVV7r///voX6meO9f37UrO4Qv/TwnRaiHDv+Ulul2JMwLrrrrvYtGkTgwcP5uSTT+a0005j0qRJDBjgDDC48MILGTZsGMnJyTzzzDPe1yUmJpKXl8eWLVtISkriuuuuIzk5mV/+8pccPHgQgOnTpzN//nzv9rNnz2bo0KEMHDiQdevWAZCbm8v48eNJTk5m5syZ9OjRg7y8vDrrraueDz/8kKFDh5KamsqZZ54JQHFxMTNmzGDgwIEMGjSIt956C4DWrVt7Xzd//nymT5/urfeGG25g5MiR3HnnnXz77beMGjWKIUOGcOqpp7J+/XoAKioq+N3vfkdKSgqDBg3iscceY8mSJVx44YXe/X7yySdcdNFFx/dDqUlVXfkaNmyY+sKStdna4/cL9allGT45njFNJT093dXjb968WZOTk1VVdenSpdqqVSvNzMz0rs/Pz1dV1QMHDmhycrLm5eWpqmqPHj00NzdXN2/erCEhIfrjjz+qqurkyZP15ZdfVlXVadOm6Ztvvund/tFHH1VV1SeeeEKvvfZaVVW96aab9MEHH1RV1Q8++EABzc3NrbPe2urJycnRhIQEb91V29x5553629/+1vvaPXv2qKpqVFSUd9mbb76p06ZN89Z73nnnaXl5uaqqFhYWallZmaqqfvLJJ3rxxRerquqTTz6pl1xyiXddfn6+VlZWar9+/TQnJ0dVVadMmaILFiyo9Xuo7WeOM7qw1lz1j78TmsihsgpmL0jjpI5RXDPaOkKNaUwjRow44qaXRx99lHfeeQeA7du3s3HjRtq3b3/Ea3r27MngwYMBGDZsGFu2bKl13xdffLF3m7fffhuAL774wrv/CRMm0LZt26PWV1s9ubm5nH766d6627VrB8DixYuZN2+e97XH2jfA5MmTCQlx+uMKCwuZNm0aGzduREQoKyvz7veGG27wNslUHe+qq67ilVdeYcaMGXz11Ve89NJLxzxefQR1oP/js0y27TnA3JkjCQ9tFq1LxvhMVFSU9/GyZctYvHgxX331Fa1atWLs2LG13hQTERHhfRwSEuJtcqlru5CQEMrLyxtcW33rOZbqY8Frvr769//HP/6RM844g3feeYctW7YwduzYo+53xowZTJw4kcjISCZPntxobfBBm3Lb8g/w5LIMJqbGcWrvDm6XY0zAa9OmDfv27at1XWFhIW3btqVVq1asW7eOr7/+utGPP3r0aN544w0APv74Y/bu3VvntnXVc8opp7B8+XI2b94MwJ49ewAYP348TzzxhPf1Vfvu3Lkza9eupbKy0nu1X9fx4uOdOQtfeOEF7/Lx48fzj3/8w/tLqep4cXFxxMXF8cADDzBjxowGnYejCdpAv39hGqEthHvOtY5QYxpD+/btGT16NCkpKdxxxx1HrJswYQLl5eUkJSVx1113ccoppzT68WfPns3HH39MSkoKb775Jl26dKFNmza1bltXPR07duSZZ57h4osvJjU1lcsvvxyAe++9l71795KSkkJqaipLly4F4KGHHuL888/n1FNPpWvXrrUeC+DOO+/k7rvvZsiQIUf8RTFz5ky6d+/OoEGDSE1NZe7cud51U6dOpVu3biQlNV5GidPG7nvDhw/XFStWNMm+F6dnM/OlFdxzbpLNpmiCxtq1axv1zR9oSkpKCAkJITQ0lK+++oobb7yRlStXul3Wcbv55psZMmQI1157bZ3b1PYzF5HvVXV4bdsHXRv6obIK7luYRp9OrZk+OtHtcowxjWTbtm1cdtllVFZWEh4ezrPPPut2Scdt2LBhREVF8fe//71R9xt0gf7ksk1s33OQ1647hbCQoG1RMqbZ6dOnDz/++OMRy/Lz871jyav79NNPfzbCxp98//33TbLfoAr0LXn7efqzTVwwOI5RJ/nvD9MY0zjat28f0M0ujS1oLmFVlTnvpxEe0sI6Qo0xzVLQBPon6dksW5/LbeP70ik60u1yjDHG54Ii0A+WVnDf++n079KGaaN6uF2OMca4Iija0J9YmsGOgoO88etRhFpH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\n",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": [],
            "needs_background": "light"
          }
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "SBNakPyq3OyC"
      },
      "source": [
        "## Getting a feature vector from a trained model\n",
        "\n",
        "> 🤔 **Question:** What happens with the `tf.keras.layers.GlobalAveragePooling2D()` layer? I haven't seen it before.\n",
        "\n",
        "The [`tf.keras.layers.GlobalAveragePooling2D()`](https://www.tensorflow.org/api_docs/python/tf/keras/layers/GlobalAveragePooling2D) layer transforms a 4D tensor into a 2D tensor by averaging the values across the inner-axes.\n",
        "\n",
        "The previous sentence is a bit of a mouthful, so let's see an example."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "xYNLE0VU_c50",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "1a13f29e-39bc-4d5b-fe42-415282f8e3a0"
      },
      "source": [
        "# Define input tensor shape (same number of dimensions as the output of efficientnetb0)\n",
        "input_shape = (1, 4, 4, 3)\n",
        "\n",
        "# Create a random tensor\n",
        "tf.random.set_seed(42)\n",
        "input_tensor = tf.random.normal(input_shape)\n",
        "print(f\"Random input tensor:\\n {input_tensor}\\n\")\n",
        "\n",
        "# Pass the random tensor through a global average pooling 2D layer\n",
        "global_average_pooled_tensor = tf.keras.layers.GlobalAveragePooling2D()(input_tensor)\n",
        "print(f\"2D global average pooled random tensor:\\n {global_average_pooled_tensor}\\n\")\n",
        "\n",
        "# Check the shapes of the different tensors\n",
        "print(f\"Shape of input tensor: {input_tensor.shape}\")\n",
        "print(f\"Shape of 2D global averaged pooled input tensor: {global_average_pooled_tensor.shape}\")"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Random input tensor:\n",
            " [[[[ 0.3274685  -0.8426258   0.3194337 ]\n",
            "   [-1.4075519  -2.3880599  -1.0392479 ]\n",
            "   [-0.5573232   0.539707    1.6994323 ]\n",
            "   [ 0.28893656 -1.5066116  -0.2645474 ]]\n",
            "\n",
            "  [[-0.59722406 -1.9171132  -0.62044144]\n",
            "   [ 0.8504023  -0.40604794 -3.0258412 ]\n",
            "   [ 0.9058464   0.29855987 -0.22561555]\n",
            "   [-0.7616443  -1.891714   -0.9384712 ]]\n",
            "\n",
            "  [[ 0.77852213 -0.47338897  0.97772694]\n",
            "   [ 0.24694404  0.20573747 -0.5256233 ]\n",
            "   [ 0.32410017  0.02545409 -0.10638497]\n",
            "   [-0.6369475   1.1603122   0.2507359 ]]\n",
            "\n",
            "  [[-0.41728497  0.40125778 -1.4145442 ]\n",
            "   [-0.5931857  -1.6617213   0.33567193]\n",
            "   [ 0.10815629  0.2347968  -0.56668764]\n",
            "   [-0.35819843  0.88698614  0.52744764]]]]\n",
            "\n",
            "2D global average pooled random tensor:\n",
            " [[-0.09368646 -0.45840448 -0.2885598 ]]\n",
            "\n",
            "Shape of input tensor: (1, 4, 4, 3)\n",
            "Shape of 2D global averaged pooled input tensor: (1, 3)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "yq5RAKrENCpT"
      },
      "source": [
        "You can see the `tf.keras.layers.GlobalAveragePooling2D()` layer condensed the input tensor from shape `(1, 4, 4, 3)` to `(1, 3)`. It did so by averaging the `input_tensor` across the middle two axes.\n",
        "\n",
        "We can replicate this operation using the `tf.reduce_mean()` operation and specifying the appropriate axes."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "jBzN5HfAAUHx",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "bf06dcab-5432-42fb-a649-f3b0153591cc"
      },
      "source": [
        "# This is the same as GlobalAveragePooling2D()\n",
        "tf.reduce_mean(input_tensor, axis=[1, 2]) # average across the middle axes"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "<tf.Tensor: shape=(1, 3), dtype=float32, numpy=array([[-0.09368646, -0.45840448, -0.2885598 ]], dtype=float32)>"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 15
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "urQv2FtCPS85"
      },
      "source": [
        "Doing this not only makes the output of the base model compatible with the input shape requirement of our output layer (`tf.keras.layers.Dense()`), it also condenses the information found by the base model into a lower dimension **feature vector**.\n",
        "\n",
        "> 🔑 **Note:** One of the reasons feature extraction transfer learning is named how it is is because what often happens is a pretrained model outputs a **feature vector** (a long tensor of numbers, in our case, this is the output of the [`tf.keras.layers.GlobalAveragePooling2D()`](https://www.tensorflow.org/api_docs/python/tf/keras/layers/GlobalAveragePooling2D) layer) which can then be used to extract patterns out of.\n",
        "\n",
        "> 🛠 **Practice:** Do the same as the above cell but for [`tf.keras.layers.GlobalMaxPool2D()`](https://www.tensorflow.org/api_docs/python/tf/keras/layers/GlobalMaxPool2D)."
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "DafB65YULbRe"
      },
      "source": [
        "## Running a series of transfer learning experiments\n",
        "\n",
        "We've seen the incredible results of transfer learning on 10% of the training data, what about 1% of the training data?\n",
        "\n",
        "What kind of results do you think we can get using 100x less data than the original CNN models we built ourselves?\n",
        "\n",
        "Why don't we answer that question while running the following modelling experiments:\n",
        "1. `model_1`: Use feature extraction transfer learning on 1% of the training data with data augmentation.\n",
        "2. `model_2`: Use feature extraction transfer learning on 10% of the training data with data augmentation.\n",
        "3. `model_3`: Use fine-tuning transfer learning on 10% of the training data with data augmentation.\n",
        "4. `model_4`: Use fine-tuning transfer learning on 100% of the training data with data augmentation.\n",
        "\n",
        "While all of the experiments will be run on different versions of the training data, they will all be evaluated on the same test dataset, this ensures the results of each experiment are as comparable as possible.\n",
        "\n",
        "All experiments will be done using the `EfficientNetB0` model within the `tf.keras.applications` module.\n",
        "\n",
        "To make sure we're keeping track of our experiments, we'll use our `create_tensorboard_callback()` function to log all of the model training logs.\n",
        "\n",
        "We'll construct each model using the Keras Functional API and instead of implementing data augmentation in the `ImageDataGenerator` class as we have previously, we're going to build it right into the model using the [`tf.keras.layers.experimental.preprocessing`](https://www.tensorflow.org/api_docs/python/tf/keras/layers/experimental/preprocessing) module.\n",
        "\n",
        "Let's begin by downloading the data for experiment 1, using feature extraction transfer learning on 1% of the training data with data augmentation."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "2P1rLJmaCXZN",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "0630e683-7dbd-41ad-9f8b-be4fdebb0738"
      },
      "source": [
        "# Download and unzip data\n",
        "!wget https://storage.googleapis.com/ztm_tf_course/food_vision/10_food_classes_1_percent.zip\n",
        "unzip_data(\"10_food_classes_1_percent.zip\")\n",
        "\n",
        "# Create training and test dirs\n",
        "train_dir_1_percent = \"10_food_classes_1_percent/train/\"\n",
        "test_dir = \"10_food_classes_1_percent/test/\""
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "--2021-02-16 02:15:55--  https://storage.googleapis.com/ztm_tf_course/food_vision/10_food_classes_1_percent.zip\n",
            "Resolving storage.googleapis.com (storage.googleapis.com)... 172.217.7.208, 172.217.9.208, 172.217.15.112, ...\n",
            "Connecting to storage.googleapis.com (storage.googleapis.com)|172.217.7.208|:443... connected.\n",
            "HTTP request sent, awaiting response... 200 OK\n",
            "Length: 133612354 (127M) [application/zip]\n",
            "Saving to: ‘10_food_classes_1_percent.zip.1’\n",
            "\n",
            "10_food_classes_1_p 100%[===================>] 127.42M   194MB/s    in 0.7s    \n",
            "\n",
            "2021-02-16 02:15:56 (194 MB/s) - ‘10_food_classes_1_percent.zip.1’ saved [133612354/133612354]\n",
            "\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "8hnXOA1EoyRF"
      },
      "source": [
        "How many images are we working with?"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "sqoi0htuo6Sb",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "b1e9104a-39b8-4634-e60c-b09d7ccbdb11"
      },
      "source": [
        "# Walk through 1 percent data directory and list number of files\n",
        "walk_through_dir(\"10_food_classes_1_percent\")"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "There are 2 directories and 0 images in '10_food_classes_1_percent'.\n",
            "There are 10 directories and 0 images in '10_food_classes_1_percent/train'.\n",
            "There are 0 directories and 7 images in '10_food_classes_1_percent/train/ice_cream'.\n",
            "There are 0 directories and 7 images in '10_food_classes_1_percent/train/ramen'.\n",
            "There are 0 directories and 7 images in '10_food_classes_1_percent/train/chicken_wings'.\n",
            "There are 0 directories and 7 images in '10_food_classes_1_percent/train/pizza'.\n",
            "There are 0 directories and 7 images in '10_food_classes_1_percent/train/steak'.\n",
            "There are 0 directories and 7 images in '10_food_classes_1_percent/train/fried_rice'.\n",
            "There are 0 directories and 7 images in '10_food_classes_1_percent/train/hamburger'.\n",
            "There are 0 directories and 7 images in '10_food_classes_1_percent/train/grilled_salmon'.\n",
            "There are 0 directories and 7 images in '10_food_classes_1_percent/train/sushi'.\n",
            "There are 0 directories and 7 images in '10_food_classes_1_percent/train/chicken_curry'.\n",
            "There are 10 directories and 0 images in '10_food_classes_1_percent/test'.\n",
            "There are 0 directories and 250 images in '10_food_classes_1_percent/test/ice_cream'.\n",
            "There are 0 directories and 250 images in '10_food_classes_1_percent/test/ramen'.\n",
            "There are 0 directories and 250 images in '10_food_classes_1_percent/test/chicken_wings'.\n",
            "There are 0 directories and 250 images in '10_food_classes_1_percent/test/pizza'.\n",
            "There are 0 directories and 250 images in '10_food_classes_1_percent/test/steak'.\n",
            "There are 0 directories and 250 images in '10_food_classes_1_percent/test/fried_rice'.\n",
            "There are 0 directories and 250 images in '10_food_classes_1_percent/test/hamburger'.\n",
            "There are 0 directories and 250 images in '10_food_classes_1_percent/test/grilled_salmon'.\n",
            "There are 0 directories and 250 images in '10_food_classes_1_percent/test/sushi'.\n",
            "There are 0 directories and 250 images in '10_food_classes_1_percent/test/chicken_curry'.\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "QEC70hlwo_mB"
      },
      "source": [
        "Alright, looks like we've only got seven images of each class, this should be a bit of a challenge for our model.\n",
        "\n",
        "> 🔑 **Note:** As with the 10% of data subset, the 1% of images were chosen at random from the original full training dataset. The test images are the same as the ones which have previously been used. If you want to see how this data was preprocessed, check out the [Food Vision Image Preprocessing notebook](https://github.com/mrdbourke/tensorflow-deep-learning/blob/main/extras/image_data_modification.ipynb).\n",
        "\n",
        "Time to load our images in as `tf.data.Dataset` objects, to do so, we'll use the [`image_dataset_from_directory()`](https://www.tensorflow.org/api_docs/python/tf/keras/preprocessing/image_dataset_from_directory) method. "
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "Llh9sHmdtgf6",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "5b4b9938-8d4a-4714-cdc7-ce0c837cc471"
      },
      "source": [
        "import tensorflow as tf\n",
        "IMG_SIZE = (224, 224)\n",
        "train_data_1_percent = tf.keras.preprocessing.image_dataset_from_directory(train_dir_1_percent,\n",
        "                                                                           label_mode=\"categorical\",\n",
        "                                                                           batch_size=32, # default\n",
        "                                                                           image_size=IMG_SIZE)\n",
        "test_data = tf.keras.preprocessing.image_dataset_from_directory(test_dir,\n",
        "                                                                label_mode=\"categorical\",\n",
        "                                                                image_size=IMG_SIZE)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Found 70 files belonging to 10 classes.\n",
            "Found 2500 files belonging to 10 classes.\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "-D4po3S-qNJ-"
      },
      "source": [
        "Data loaded. Time to augment it."
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "zl8lSdTjDTCV"
      },
      "source": [
        "### Adding data augmentation right into the model\n",
        "\n",
        "Previously we've used the different parameters of the `ImageDataGenerator` class to augment our training images, this time we're going to build data augmentation right into the model.\n",
        "\n",
        "How?\n",
        "\n",
        "Using the [`tf.keras.layers.experimental.preprocessing`](https://www.tensorflow.org/api_docs/python/tf/keras/layers/experimental/preprocessing) module and creating a dedicated data augmentation layer.\n",
        "\n",
        "This a relatively new feature added to TensorFlow 2.2+ but it's very powerful. Adding a data augmentation layer to the model has the following benefits:\n",
        "* Preprocessing of the images (augmenting them) happens on the GPU rather than on the CPU (much faster).\n",
        "  * Images are best preprocessed on the GPU where as text and structured data are more suited to be preprocessed on the CPU.\n",
        "* Image data augmentation only happens during training so we can still export our whole model and use it elsewhere. And if someone else wanted to train the same model as us, including the same kind of data augmentation, they could.\n",
        "\n",
        "![](https://raw.githubusercontent.com/mrdbourke/tensorflow-deep-learning/main/images/05-data-augmentation-inside-a-model.png)\n",
        "*Example of using data augmentation as the first layer within a model (EfficientNetB0).*\n",
        "\n",
        "> 🤔 **Note:** At the time of writing, the preprocessing layers we're using for data augmentation are in *experimental* status within the in TensorFlow library. This means although the layers should be considered stable, the code may change slightly in a future version of TensorFlow. For more information on the other preprocessing layers avaiable and the different methods of data augmentation, check out the [Keras preprocessing layers guide](https://keras.io/guides/preprocessing_layers/) and the [TensorFlow data augmentation guide](https://www.tensorflow.org/tutorials/images/data_augmentation).\n",
        "\n",
        "To use data augmentation right within our model we'll create a Keras Sequential model consisting of only data preprocessing layers, we can then use this Sequential model within another Functional model.\n",
        "\n",
        "If that sounds confusing, it'll make sense once we create it in code.\n",
        "\n",
        "The data augmentation transformations we're going to use are:\n",
        "* [RandomFlip](https://www.tensorflow.org/api_docs/python/tf/keras/layers/experimental/preprocessing/RandomFlip) - flips image on horizontal or vertical axis.\n",
        "* [RandomRotation](https://www.tensorflow.org/api_docs/python/tf/keras/layers/experimental/preprocessing/RandomRotation) - randomly rotates image by a specified amount.\n",
        "* [RandomZoom](https://www.tensorflow.org/api_docs/python/tf/keras/layers/experimental/preprocessing/RandomZoom) - randomly zooms into an image by specified amount.\n",
        "* [RandomHeight](https://www.tensorflow.org/api_docs/python/tf/keras/layers/experimental/preprocessing/RandomHeight) - randomly shifts image height by a specified amount.\n",
        "* [RandomWidth](https://www.tensorflow.org/api_docs/python/tf/keras/layers/experimental/preprocessing/RandomWidth) - randomly shifts image width by a specified amount.\n",
        "* [Rescaling](https://www.tensorflow.org/api_docs/python/tf/keras/layers/experimental/preprocessing/Rescaling) - normalizes the image pixel values to be between 0 and 1, this is worth mentioning because it is required for some image models but since we're using the `tf.keras.applications` implementation of `EfficientNetB0`, it's not required.\n",
        "\n",
        "There are more option but these will do for now."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "bjHAalnakGEu"
      },
      "source": [
        "import tensorflow as tf\n",
        "from tensorflow import keras\n",
        "from tensorflow.keras import layers\n",
        "from tensorflow.keras.layers.experimental import preprocessing\n",
        "\n",
        "# Create a data augmentation stage with horizontal flipping, rotations, zooms\n",
        "data_augmentation = keras.Sequential([\n",
        "  preprocessing.RandomFlip(\"horizontal\"),\n",
        "  preprocessing.RandomRotation(0.2),\n",
        "  preprocessing.RandomZoom(0.2),\n",
        "  preprocessing.RandomHeight(0.2),\n",
        "  preprocessing.RandomWidth(0.2),\n",
        "  # preprocessing.Rescaling(1./255) # keep for ResNet50V2, remove for EfficientNetB0\n",
        "], name =\"data_augmentation\")"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "XkeE62wxuyXG"
      },
      "source": [
        "And that's it! Our data augmentation Sequential model is ready to go. As you'll see shortly, we'll be able to slot this \"model\" as a layer into our transfer learning model later on.\n",
        "\n",
        "But before we do that, let's test it out by passing random images through it."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "VBWXrlJXwKkE",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 511
        },
        "outputId": "ccd983e7-9bff-4540-8ec7-0d00e26506fc"
      },
      "source": [
        "# View a random image\n",
        "import matplotlib.pyplot as plt\n",
        "import matplotlib.image as mpimg\n",
        "import os\n",
        "import random\n",
        "target_class = random.choice(train_data_1_percent.class_names) # choose a random class\n",
        "target_dir = \"10_food_classes_1_percent/train/\" + target_class # create the target directory\n",
        "random_image = random.choice(os.listdir(target_dir)) # choose a random image from target directory\n",
        "random_image_path = target_dir + \"/\" + random_image # create the choosen random image path\n",
        "img = mpimg.imread(random_image_path) # read in the chosen target image\n",
        "plt.imshow(img) # plot the target image\n",
        "plt.title(f\"Original random image from class: {target_class}\")\n",
        "plt.axis(False); # turn off the axes\n",
        "\n",
        "# Augment the image\n",
        "augmented_img = data_augmentation(tf.expand_dims(img, axis=0)) # data augmentation model requires shape (None, height, width, 3)\n",
        "plt.figure()\n",
        "plt.imshow(tf.squeeze(augmented_img)/255.) # requires normalization after augmentation\n",
        "plt.title(f\"Augmented random image from class: {target_class}\")\n",
        "plt.axis(False);"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "iVBORw0KGgoAAAANSUhEUgAAATsAAAD3CAYAAABigfO8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOy9ebQnx3Xf97m19PLb3nuzYwYDUCAJARRISWZEkYpkKbZiS44UKTnREsuyJUs5jnK86MS2HNmOrcjLURLlOJudxPaJY0WOFlOidlIURVHcQEKgBREksc+G2d+89bf0Ulv+6H4zDwMMZgCCBDF433Peeb/uqq6urrr17Vv33qqWlBJ72MMe9nC7Q73aFdjDHvawhy8G9shuD3vYw+sCe2S3hz3s4XWBPbLbwx728LrAHtntYQ97eF1gj+z2sIc9vC7wBSM7EfnbIvIvX+m8t1BWEpE3vRJlvYx7/4CIfPSLcJ+7RGQmIvoLfa/PByJSisivi8iWiPzbV7s+OxCRbxKRs692PW4V1/e3iHxIRH64//2yZe4LKa8i8oZ+LJovRPkvB7dUERH5AeCvA28EtoH3AD+eUtq80TUppX98q5V4KXn3ACmlM8Do1a7HLeA/Aw4D+1NK/tWuzGsVr6H+/pLGTTU7EfnrwH8P/E1gCXgncDfwOyKS3eCaLxk2vxGkw940/guLu4Enb0R0rwU5ebWx10avIFJKN/wDJsAM+O7rzo+AVeAv9sc/Abwb+Fk6ze+H+3M/u+uaPw+cBtaA/xY4BXzzrut/tv/9BiABfwE4A1wB/s6uct4BPAhsAheA/x3IdqUn4E03eJ4PAf8I+BhQAW8CfhB4DJgCJ4C/tCv/NwFn6bTay/39fnBX+n7g1/pnfgj4B8BHd6V/HfAHwFb//+uuq8s/BD7et/Gv9+X9m768PwDecIPn2Gkj83LKAv4X4Nk+7VPAN+xKK4F/DWz07fJjwNld6UeBX+r7/yTwV29Qx/8OaAHX1+mHgB/o2/6f9HLwD+leoD/Tl3ca+LuA6svYnX+z75+v688/2/fJX3gR+d0H/CvgfP88v7K7X3fl+2+AZ3oZ+Bzwn+xKexPw+30fXgF+oT8vfb0u9+34KPDAi42nXWV+GfDh/n4fAP4pz5f/H6KT/w/foL9/eFcb7Za5+4DfAdaBJ9g1drmJvN6grjd8TuA/Av6wP/8s8BOvoIzebOz8g142psD7gQM3bfebPOi3AH6nwtel/Wvg53aRlQO+k05bLHkugb2lf8CvBzLgp/v8L0Z2/6Iv5yuBBri/T387nXZp+ryPAT/6EsjuDPAV/fW277A39p36jcAC+GO7BoUHfrLP+2f69JU+/eeBXwSGwAPAuR3hoRtoG8D39/f6z/vj/bvq8nR/7yW6QfYk8M19/p8B/tVLILtbLgv4c3SCZuiI/CJQ9Gk/RTe4V4A7gU/TE0Pft58C/l7fj/fQEdCfvkE9r/brroHpgb/S37vs6/arwLh/rieBH7ou/w8Cmm6wnKEjhxz4U3TCPrrB/X8T+IX+WSzwjTcgu++iI3EFfA8wB+7o034O+Dt9WgF8fX/+T/dtsUwnO/fvuubPAp9+kXH1IN0YyOjGxDbPl/+foZOr8gb9/Tyy6/M/27eXAb6ajqDfcjN5fZG6vthzfhPw1r5t3gZcAr7z85VRbm3sPAPc27fPh4Cf+nzJ7s8BF2+Q9lPA7+wS6g/fSNDpBsfP7Uob0L31X4zs7tyV/yHge29Qjx8F3vMSyO4nb/LMvwL8tV2dWbGL7OnecO+kG3wOuG9X2j/eJXjfDzz0AkL+A7vqsltj/Z+A9+46/nbgkZdAdi+rrD59A/jK/vdzyItOS98hu68Fzlx37Y9zY1K+2q+7BuaZXce6l4O37Dr3l4AP7cr/1K60t/bPfXjXuTXgq17g3ncAkf7FdF3aN7GL7F4g/RHgO/rfPwP8893y2J//E3SD9Z30muit/AF30RH4YNe5n+X58n/PTfr7hcjue4CPXHe//wv4+9xEXl+kvrf8nMD/DPyTz1dGubWx83d3pf1XwPtu1vY3s1ldAQ7cwG5wR5++g2dfpJyju9NTSgs6IX0xXNz1e0FvoBWRe0XkN0Tkoohs03XYgZuUtRvPqaeIfKuIfEJE1kVkk057213eWnquzWmnLgfp3jq7yzu96/fR64530o/tOr6063f1AscvxSh9y2WJyN8Qkcd6L+km3Zt255mf01fX/b4bOCoimzt/wN+mc0LcKnaXd4BO49rdTjdrI1JKt9JOx4H1lNLGzSokIn9eRB7Z9UwPcK09foxOo3lIRD4rIn+xr8MH6Uwo/xS4LCL/XEQmN7sXXfuu92NgBy80dl5sPN0IdwNfe13/fB9whJvL6wvixZ5TRL5WRH5PRFZFZAv4L3nxsXirMnorY+cF+eHFcDOye5BuCvmf7j4pIiPgW4Hf3XU6vUg5F+imRDvXl3TTqJeD/wN4HHhzSmlCN9jkJVx/tZ4iktPZn36aTltYBn7rFstbpXtDH9917q5dv8/TCR/XpZ97CXV9xSEi30A3gL+bTutZprOL7Dzzc/qK5z7fs8DJlNLyrr9xSunPvIQq7JaTK3Taxu52eqXa6Flgn4gsv1gmEbmbzmTyl+mmScvAZ+jbI6V0MaX0X6SUjtJpnf9sJ7QppfS/ppTeTmemuZfOiXczXOjrNdh17vgL5Hux8XQjPAv8/nX9M0op/Qg3l9cb4kWe8/+jswEeTyktAf8nL20s3ghfkLHzomSXUtqiMzT/byLyLSJiReQNdPP+s8D/e4v3eTfw7SLydb0H9yd4+Y0yprNxzETkPuBHXmY50NlMcnpBEJFvpbMD3RQppQD8MvATIjIQkbfQOVV28FvAvSLyZ0XEiMj30AnLb3we9X0lMKYT+lXAiMjfo3NE7eAXgR8XkRUROUZHAjt4CJiKyN/qY+i0iDwgIl/zcirSt+EvAv9IRMY98fzXdNO6zwsppQvAe+nIaaWX3T/+AlmHdMSyCiAiP0in2dEff5eI7JD/Rp83isjX9JqNpbPx1XTT5pvV6zTwMJ3cZCLyLrop3CuB36CTue/vn9f29bz/FuT1BXGT5xzTaam1iLyDzlb5SuALMnZuGnqRUvof6LSnn6YjmU/SvUH+ZEqpuZWbpJQ+S2eU/nm6N9uMzvZ1S9dfh79B16hTujfyL7yMMnbqNQX+Kt2A2+jL/bWXUMRfplOfLwL/D53nb6fsNeDb6BwAa3Ta1LellK48v5gvKn4beB+dHeY0nfDuntr8JN2L7CSdp/Dd9P3UD5hvA76qT78C/Eu6afDLxV+hG0QngI/SaQv/9+dR3m58P53m+DidvP3o9RlSSp+jsx89SDeteiudl28HXwN8UkRmdLLx11JKJ+heEP+CTm52ogz+RwAR+T4R+eyL1Ov7gHdxzSP9C7y8sXD9s0zpXtbfS6cdXaQLG8v7LDeU1xfBDZ+Tzlb2kyIypbPL/+Ln+wz9c3xBxo70Br4vKvpp8CbdVPTkF70Ce7hliMiP0DmHvvHVrsvtChH5BeDxlNLff7XrcjvjixZUKyLf3qvPQzot8VG6WLs9fAlBRO4QkX9fRJSIfDnd2/U9r3a9bif0U8M39m38LcB30EUB7OELiC9mdPZ30Nn4hM5m8b3p1VAr93AzZHThCl9Gp33/PPDPXtUa3X44Qmc/209nMviRlNIfvlqV6Z1W732htJTSbbNM7VWZxu5hD3vYwxcbe2tD97CHPbwucLssMn6dq6fXIh4SXbS4oHF+zkc++Rv80nt/lpnzLJzGiqXerFg/u45ymv3LB/ixv/m3+Pfe8bWItogIfXQFO82aUl9+stdaWiKJltbNefrkU3z8wQ/z9GN/xLGDh/iu7/lBjhy7D4kaBKJWeAQFmL7ooEGnhpQStWS0zZTqxCe4+Ae/ht16Cu8c1miUgJCwxqAlYVQiJYciYLOMvBggytLWAWMy7GiMshk+OpT4Lr9vISmqeQtRE0MixoRrHa00MAdJy9jjD3D4T3wHcf8bcZQYumUHqm/ZCAQREgmTEgrVtUfqMqX+QPrzQgTxIIqUDCDISwy46mZeN41o2RU8uquLXrCsPk3kOcdXVxko1cvAc/MDaDGvRAzdq4bbhez2cB0Sgel8i8889ihVU7FoW1Alhw8f49zsHHVdkaWCPMsZDAagrpfj3Uq/XPuXACIhVswXGzz8qY/y/g++j5Mnn2E6nXL67AXe/vWX2X/sATCqI7gIWX8dKhI1eDTK18T5KiZ6MhUZTxJxpWS2EARBS0BLIjOa3EKKgZhatAoYBcZ4lGpJktBGkxUZ2ihQCUNCS8I3c2bbc6zJ0SpDa01IEe8dxhp844jB07QzNi+dYXjxLOOl44gpUCRkF4soAZUSidQRWfJdgyghoQl02wvq1DeVKEDvKuNLG/JSmfg1hj2yu92QQFD41HDi7JM8eepxZvWMNka0FhbzGTF0q99SSmhtMFnOc/UAuVpWB3U1v/c16+sXWCzWefhTD/KRB9/Phctnmc/mxGiYLC2RGYWONR6DKA2iu7JESJIIREDw00tcevSDLNbOkOnIOE+E6QWsDhRG4dua5FuMNhQ6J4gHBdEHhIhWGq1AtEJQ/W0CwbW09YLo5uAqUjA4L1RthVUZhEQKHgHmmzVGNKIVfrHB+Sce5U2H34xZLklGk6Qj3mvtk+h0NkFiTWi38K5BmQKdjUFnJCzIjianO0078XxV60sItzvRwR7Z3RZIV/c/2DlO1O2cx088ysZ8gyBgrCF6z6mTJ6g2a5RStHXLaDJhsrzM7q39rp++7JQfYsMjjzzIb/3mL5Nixerlc2wv1kn1jLGB0XDCHcsjhn6b6uS/wwXN+PAx0ng/0RSAQpJgYgS/TmovEy5/FnfuM0QcajggpoChxSiFNoFEwEhEYsSIQduSpDQpRZRkBK8JLqEzg48ePLRNgyRPs1jgqykmG0NK1POGeTtDIpAibd3Q+gEytHgcTbPF1lOfY+nQmzj8wIC0fJC4i+hU9wT9BF+hCSw2nmXz0imiDyxNDjA+dBw1PoLoJaJYUuqueSGmeyHn4G7S+WI7D293wtsju9sEKaXn2GEuXznP555+lCrWeBTjcowRTb29QUqBtmlp68D+A/sZjSY8dzCmq//TVaNU5NnTT/Arv/xveOqJTxPbhtwahrlhfz5h39IEXSzxFfd+BXlb86n3/xKzC6scf+Crufud30Bx6BjW5jCfs3HqaeqNJwlbp4nbZxibOZm0SGgxeUkSgIAohSlKJAVc22KMQUsGxhJCACwhGNA5iML7trOXKYNCoU1OUC3BB1KIWGuxWuNcgJggCFDiVM7Ct0ynFbFa4/EHP4gLjkNv/+PY4YQk9irpCREVItE3hPklqgsnaC8+RTvfxmUZ1fpxxsfuZ3TwflRxkNhreN3U9+WQyStHeNeT2e1Obtdjj+xuI+wQXYyBM+dOcmntHE30aFNSlksUxrCmtlCiSClgjGUwGGKt7SdnO0a5jtwSgZQCpMTW5hU+8Nu/ysmnP0tphPmshSgcHkyYJEfadtz9hjfzznf9KQ4cWGZ64SyLM0+R1k+x/VjOxUcjhRHcxjm2L5xiKV8gymMzRzHMsCl1DgkjhCiAIsSAiCJGUFkOyiBao5TQ+oASRVYMUHYIytPMa0LrMLYAEZQZggkkV+OcI8syxGYQI56IHuQYP6BC8DYjz3PaJrB96SSPfnzK/RGO3/8AZryCUprYtlTzGfVsgwunHmP11OOk6QVMnBJxjFYmtO06s+3LHEuG4Z0DRA9JdNPsa228h1cDe2T3Gkfq3/zX3tIJH1rOXzxH1VaE6BlkJftWDuLqCq01xhhGozHtPDFZWkJpfa20q0pdpK6nzOZb1HXFxz78IR76xMeYDAqa+YzQevJ8QtEmwvYmxWTEPcfv4eDRe9CZ5uA9b2H9qQcZl3AwC5x44tNcWDuLiZtMhjA2GZIP0IMB3nmQgAChqRDRiO7saCEJOitoaofWOYumIkXPYlEhKme0nFPk0DYtRmcYnROSIqSE2IKsgIXz+BQhJAiRxkdaH9A2gzzH+0AIQjYoMcbhmgXV5iUe//3f5uLjjzLYd4CoNbPtTabrlyHMKNSC9QvnGBlFXU3BKrZm2xQDhR1cxBRHeMOBNyCDnCS266O+ja/vwVud4t6iQFzzI70sz28HEbmhV/a1ij2yu03QTZO6AInt+gqnLp5gVi1QMVEqBSGwtrmJT4lFVeMXiaXBfg4fPIJWqr8y9uEUQvSe0yee5NHPPMTl1VU++fGHkWrGnYf389SFS9SLBjVQBDQr+5a5+64DDFmnufxZilGJVOdYymG2eppnZ5fQtBzcbzFxmWGZ0dicA8fvQmhZO/8EKI2KAeMVMSS81EihscWQYvkIepYIIRHTNnXdkuUlwUNyHl83xDahVInoEbWvCbFGi8KFjJolJFdEhBAiQQWqWDEuBuTjZdrpgth6fBSCzbFFhl/UxGabM5+9iNUGayKtW0fUnMmyRVtYKgPJW0AQp2jXG9orNehtavdJ9h9/C0t3jxFtSX1Iz7XwFOAGtrwXxvMCSbhxkMmXtC/kVcMe2d0muDo9Sort2RZb0y2WViZsbW7gXM3W1hrra5eZz+a41iEYyrLkyB1HUKobiFc1D4mE0LB25RJPPfEYTz31JGuXLjMyhvPnG5q6QYuQaTBGs7SyxPE7lmnXn+LUJzYZZpbq4imGbqubBjNnkJsuOEN5TAoEEu32ZUJoIXp8DETRaKXx1ZRFNUNZg8oDSiaUo4O0LlJXC4wqKbIMsUII0C5q6rolpAbyRNCCygzKGBZxhsrH5FmGJMXmxjZtDOiiQBXLiM4Q7YhEolIYkyNJOk9yFGwEQiLgEJVRlobcKjITsYVQLwKKROMis2pBampSTEzbZzj58EPcVx6gOJAhZrjLs5uu07x2Jrg3oqi4E/H4vF7f6fkXosI9PBd7ZPcaRTe1SNemLD1CDJw4c4KN7XXGSyMW1RRSJMYW5yraRY13jkIyiizDtTUbG2vYzJJZizGalByXVs/y2c/9EadPnWBt9SKD3LA8HLG2ukrynlFhGeeK0gSsiiS/gfgFvr5Ai6Koqi4MJHky0ahQ0Q3aRIoZhsh8vWI4GjEsMup5hVOKGIXVtXXcfIHVBp17nB+wfNc+sIY8L8hGQyQG2rrBuxbX1jRNS8SS6RzEUjeeed3SBiEvR9Ro6rrF2TFRKyIaJ0Nm0xnOJxYuItowzIfYLMfrBdV8jipLCm1p5lOsHlPX22xvbrI0smSmwOiCGD1142jaRGo1Jgl+a8ZjD34EFw1f/S3fjUxKEIVK9FreDlUl5OpUdieI+2ov92cUzw8s3iG6V1qHS9f9v/78axd7ZPcaReoHSQKkD3RNRHxoOHnmaTZn6yTvadqWFCGFRHQOYkJCQmtBifDUE0+wub3JbD6nKHOWl0eIcjz0yY/y5GOPEl1N5y5I1HVD6zzeNRw6uMRdB0r220QpU9pFzWRs0CqCE1ReoIwwyCClmhjrTmlUFrKCzHaDt60rlI5onROiwvlEUhnaAlGIXtM2gen2HMk1mU6IEerK4aKj8jXz+RyVhCKfoHq7Y/CRNoEdjBkfOE7VBCq3gc5zxsNlYhRC7Gx3TlqcRNo24BY11ieSCPloQKQiBNiazVHR0VQ1i+mcam4YlhGtHdWiJaKxdohLAecCqWmYnzuFe+Qhjj3wdg7dt4ySflu5pLuAY7nWdyJd7OFO7+7qaK4GeEvnE05JQFSf/+arK16OdL2wd/61jT2ye81iZ9oaSNETo6NqF5w5d4aTzz7FvJnRNjUShKXxPqxYYliDEFEJjCi+6m1v4zu+8z9GGc3Fyxf53BOP8iu/+T6ePX+C6fY6OkRMFFRMTJsFziSsLRgVijccW+FNd4ywiyuYFBkPCwaFxTmH14qUD9GZEGKNQiFBSEkQnROVJRLQxlAtGrJcoZTF+YQow4Gj95BaRzWvSGIwwwkhRDIMSRRbi4qUQLKS4CDlibZtsTZDZyUmH6KcwyiLysbUMkSGGcZnDMdLHL3jOBfOXSTUDSuDAa5tCOtXqDc3mDctbjrFWsOozEnJs7q2wWKxwDcNkhK2XMGLZ94KmRVqn/A+4gP4mLqwmOBp65r61Ak+/eCH+YYDdzBcOQDadm2AgaT6gJTnk8mOU0AQSJEuODAAqYuJjL0MvIKr258biZJucP61iz2ye41i590bvWd7/TJ/9Oin+PTjf8SVrStcnJ2jC66IaLEc2HeYxbSiqTwpRFKIRB05fPgQB/bvR6xisjxi7tbhoUCbKnSumK5NqTYrTBQKbSj2LaFV5I1vOMI9x5cZsU05TBTFhLwosVqjgieFhqpdw1EyyIUUHdYmko8UmSFhCGIJQZHo1qgmPFpZXEgkyRgurWCLmsZ5Zq1H1w0ms0Q0IRVgLDEpYpaj0oiQNzTZiGDGJBlgV0aEpBE7gWKIthbtNU5bLm3PmPlA3ToO7t9HPlGsTReYvGFYZmxvbTDd3qSZbWKU6WLrjMakjCLLKYuM2WKLum1oFi3JJ7xPpKRQ0k9Mo0Kc0Kxv8bmPfQxfB77srW/j2Bu/nPGBo6h8BOraNHR3YPhOzGT3O0KqEUJvimiwtkCpHMj6NbevZMzc7aHFvRD2yO5LGIkIaWdheff+T9ItSJcUqas5Tz3+WT72kd/jE3/wcS5tnOfue+9koTcJNDjXorRhaXmJYTbkc20i1AGFMChyDh06gOguLu+pk0/yq+//Nc6unsUOLDZTzLcX+FjT1o7JvglvvvfLuXTuNFZgklmWTY5NgFL40OIFBrlGiSIqSzleIqWa0CS0RGxu2Qlv0dkYpRVKldTVlMyWILC1sY6LC5Zi6kJitMYlh2ta1MJh8pxkC5IqcBjUQJNosZmm8YmakhgzsligizFmsIyxGT56omjqqmZre0ZwntB6Tp06RYyBqpqjleL+++/j/Mln+Mz5ZyE0uKS6oOIYcD5gTOwcKVmBcxHXOrQoRGA4GKCUMJtuobTCKIVFU69f5uEPvI9P/+HDHH3jm7n/q9/BXfc9wIFjxzF5QUgJJRpSF+6RSEiKpOiYbq6xfvEZxoWlma9z4eJJDtxxJ3fc9Vay0THAItJb92SXNkjaFX+y89fnSc93aex2mNwmitzzsEd2X8JIu+0xaccf160tXaxd5sMffD8Pf+oT3HH0KCElqqbGxZqaKUkcEFEazp4/Q7W6IPOKEBVaCYcPH+L43cdIeE6cPsUvvuff8sjjj5CSx2pwrYOQMEohJkOjGQ8HhFGJrhawqBkfGaOlICZH8guCb2h1hrZDxoMlkIzNrc3O20pLsIB08XIqgjKWwXg/aaPA+5at7TVWN7ZpXUNeFkyWlkgoTCYIlkCOUBJViR3tw0sGkpMPFcZmpLpmVjXEZAghQ7eCHShsOaKeTUkRfF0zm26jkjAZTdiebVJVCzwRJPHEo4+yfvok1cULiK8wgzHFyiFSWZLE4SLMFhWJyHzhIGhKa7GZoLQQgkcZTYwtQQeU0lgSKXlKIhunT/LJixd45OO/z7u++T/k7vvuhyxDkqCVwRiLSpEYG6Zr53nmiU+zevbTlEkh9SbaTjnxbM7G+ZO86YFvpVi+CxdaTK4xWY6IBky/FndH/1dcc3ZEdha+PTdyJZL6dSLX5O/20vL2yO5LGAlNkE5mRSKKgLiG9fNn+J3f/A0++IH3kVRiPt/i4uULeAk00XUL/DFkxjAZTmirhvXVDQpT4MVjMssdR45y6NBhLly+xLvf824+/OHfB9MwWhr2WtIc5T2jJIjKKEzJUBIHDk24a2nCvgEUVkjRoxSEZPEBlOQk0VRtTXQzCA6FRpIhOlDKEeKU+XqDKZYw5T5CNiJIjc4rllb241xA2QFJF7Qh4pUGsRSjfTBYoU2gy4MkMSA5w2IExpKcY6QM3ic2trZp28D2omW2WKWu5zT1vLPP+UASmFczRFtsVhBdQ/A1C98wm88JEZyL6DaQiwZlwShcG6gbT9u2hKiwxtIC2hjmzuHrmjyzuBCovRCIJC24JIR5TV4IqQmcO3OBjfNXOHT0TrLBAB+mjMYjlidLDHINoebKhZNMty6h0xoXpy2ZFcpRYrNZ8OQTFzh36gLH3/YudJaz79Bh9h88hjEjlCr6zRek2/IphZ74Ortf6tw4IFcn0YiEPl1zzR58na//Na7y7ZHdS8CtRpJ/vvaTa8bpHftzhLBg4/JZHv93f8BDH/4QTzzxBKFZMGsbnnn2FAtJrNy5DzPIMG1n7B8UJUcOHOHyqVXwCY0luQAYxpMJW7Mp7/vAb/PBD/8udVuR2sBwyRBRhAiZ1lgbSBFy52guPcs9dxTs1w7TOqppTV52NY0+ktsh4/ESTXD40IJz5FZDzIle8G1DiFO8awmUhIWnkTGHvuw+gquJGkxRdLY8EVqV44BkLYjFF8ukotP25sHgMYSYmDUV6JbBeEyRFxgTyRuP1oEQEil2a2FThBQVWd5pkoFEEkPjK2KEQTHg7sMHCfMFS+NlZtNNZnVLE8CL4JLGI3iEZAxIIClh0VTMthdoFbGiIAoLB7M20cZAXmq0Ldnc2CY33dI17wLnNqesX7wMWqNUQ2YNZW4ZlgZFS1tt0tZTCm0YjA/ShIKzm1tUjcaohrZ9koWGI3feRUwzmmabwXCZIh+S52OMLdAm67W9fme+1AVXJ+l2Yrnqd007e+09f4eX2wV7ZPeS8WKu/pcSEX9zSAIdIqGd8vRnHuL33vvLnHzsM9TTbRLCopqyPp9RJUUscvJxweZiE59aQoyI82xubLG9uUXyEVc3eOdQOuPi5VV+6T3v4YMf+V3aUDMc5oQEWilc1aC9Z5wZVvYXFMFiQ2Dkt5jgmVjNeJiRlQVZDr5tyGxGZguK4YhUzXGuwbceoxRG57iQCKEmxggpIsGxPV0j5ftRSlFFwZsSmw/QlIhRzKuGNkExWCZiqCJkaKJoXBtAKe44difeJ66sr1PP57iqpm0a8izHGM2sniGqWyKnlEWZRIiaLCsIwdM0DVXjUCkStGHeJIIdosyQUTmhWt+gjQkXwCdBZQV5rsjyHO8CbV3R+IAPgaTpzA1RCLagyIconzYYnsYAACAASURBVLBZwXA4oZnXVNMpMYEnUcfIbO6xZcnQFIiymGBonEKSog0Ztc8JqWA4vhNnC+zkOLmOjIuM4TCnsAXROZrFFG0SMW5T14YiH6BVQZ4PMHaMzSZoPQSVIT3LSf86vfo/6V7j6+XvdnHD9tgjuy9lpIhvZ3zq936L3/m1n+Py+ROIjjgdWJ/WXN7eYhYjzpYMJwOwCR8bskFOu6hw3rG6topzDo1QVRVJwKfEiVOn+MPPfIbaz9l/YExuEktlyThTuGmD1YlRAftzzb6iJFULji0rVkqYjAqW9y0RRGiaBSFokncoqann29000SeiNzTRo4YGZTUZOa6JJBdpm5bYJqZrFzj39GOkwQRVDin27adx3eqHpGcYsZST/WxtV7Su7QhLGSRA0zjmswVlOSCzhvX1dUBIMeHzgDWWumlo2gbnPUpZtB30ToCIjwuS8iiT4ZuatY0paxsztM4IIZJ8pCLHxZYYI1pbtLYobTB5BhJYVDVtgCgWpTRBUrcpqGuxecZAKbQoWleBCiQJ+BBxCJ7egqY0TRSMGKJkTOcVRitiLPAKorQ8cfZpygNHuOveL+fAof0sjyzWCEpnRBLOB9qmIrMRpTS0LSFpqsaQJMNkI4wZkxcTbD5E98HXKRlE7ezMsrM7y+1lq9vBHtl9CSPR8sxTf8T7fvPdLNbPkueBtXrKhncs0DiriElDnkFm8MmTq0hWFhSSWCwavPckSbS+xYWW2G8Dtb61xdZ0yvJyiSZyaDLkvn0jyhjBG5bKIUfGJSY2WIH80BKjpYJiYAiAS0JeDEhYzACq2QZ1PcM1C8pyiUE2RGUZ5SDDM8f5Fo1GM8RLjo9zbFvTzrfYvPgsS3ffSzY4TCqXiJklJFCjHGNKGjIkL0BV1MmTqQxtLNEvuLi6jsgWdVMRQui0Jh9hEciLkvHkAH57le3FjDy3WFuSlwOqpsY3nhAXKK0pigGt6uyOLR1JN3XLrPKEtkVLYmlcopUiRM/2tKZa1DSNow2JFKAoc0xmqF2LU4aqalBEhnkG3mEHFlNmzKYLdFQo32mLRTS4do6Ljsbpzn5odadZ9Vu6h+CYbawzW9/kzjuOsrK8QjFQRBGcD/jYa5StEEWIPkFyJKlBCzFuUSXNosoosv3kxQpZMUHbEaTOznpNy7u9NLodvH7J7qon6pqX82pSkl3Wil1vuqvfA7j2l1AghoS+er2ktEtcdqa91wnRzhQhpd6IvJOn2/I7JUd0M578zMPMty6jVaQNgZpIaxRCgUkWo0CMAeOpY8BLxDeBFBNKEiE4clswjxEfNN5HQgiEttvAczIoGErkzjLnnQdXWMqFeV6xlAmZUmiVU44mYDTGQDk0+ORYNHOiyiiKoitLLKUtiL7CVRvYwTJRdUScgkenGoIjSiTGhMlGlMvLGD1AjfaDHWOGB/BqCZTGGIs1DhFNCALe0VbdRgVFWaC0IiuKzltrctAK7xpShEY829szZosKmxdk+Ygi950WFIW2DXgPMRo8OS404FsSCjGGffsOMVpa4fyzp1mccl0ITGjRWUaW54QQia5BXMCK7r550dSElIjO44G73vhmXF1x4cxpfEj4GHDiGA2HNK1FJ9NtJjqbEpyj9gvScAipwAIpBLTuLG0uCCoa/NzTbs6pNmdMhwWREjPIUMaiQyendQNNE1DJIcET8aAjJjfYPEd0i6+FajpH5wX5YEI53Ie2I0QXCAb672VAIl5d2SGv+a9zvX7J7oWQro898khqibGF4EnBE3syirElBI+xBSYfoVROZGd7c7VTQC8z12KgOuxy+/dxZzurXCUlwCGpZmv1HOdPPgXR47xjWtc0EfSgJJkChScThUuBwhiUiiibkwDvW/Is78JHkiHYlqhBJ4cPjpiEcWk5GGqWmpbResTuyyh1QTawFFm3nGx55SCmKGhcQ3Q1xBqtGnIrjCcZ0hNp0gNIEHyLVhCJGBNZVNtdG3iQIPioiHZAFI1XIxgfoTxwlGJpH1GPUGaIiYmm8V3eFHGtJyXIss6x4FqH1wIiaKVR2jAYDHFO4xqHEk0oAz5BTIHMlkyWDFXd0LYtzWxO6zoSE5WBzoghEH0AFWmammFKaGMYTsak1uCbRadFxYQLEWUyQqpJymC0YLRCpYAoTVHkrBw4yNlTp5nNalJsiSqiJJCbSJEXVC6gCw11N6U2VlO3Tadb2az73oYPiESaGNBZjhXDbHOdyxfPE3Ug2y5IRpFlGcZ0H0uaLebMZjNUSpTWkBUWmxuKQYnNI8bmDLIZVs9hATK7QlasMVk+wmC4QmbHXdxetF3Qc9rZp0W95hW+1y/Z7SaftOOC39HoIpIc0DDdvMBitkphBemFufs2jYeY8CYjNSW2GCHmcDd4pHPfp5hAJVKKnbanepJ7zjrInYnDzrGH2DDfXucTH/09zp09QVFaaskITrNoGrxLtHhUnlEmw1u+7B5Wt69QyYJC57SuRStDWQ4oC4XaqFkZKjQZc5mTZzkHllfYV2YcyIUllXFgqSTPAjEmJsuHKYuMGGpm9QyqTXJtMJKIbUtSNUorfH0Fx0HMgcOYsiVXgcXmReZbm/gmUqiINQaP4JywuT0ny8dgh7RtixrtY3DnvZjxQZI2VG3AUEGSzuCvNN4nENMRm1GI0rTOISERExjThVfUjSOmRNMGgo+IzTFA6wKiIo3zzOsapYQQWqJvcW3nrQ399yhijDSt5/LGaZ45eQqjIevJRJGYzRdU1RbeexCoqoYsy8mspbCGyWgMwJ33vJFiNGJzc4Zz3VfIJisrJB8JPmA0DDKNGWQICZssRalZzOcQoK0XZEZhM0Oe5+Q2sbU9p24XzKsFnkQUYfngPlKmsbZFRBFCYvXKGucuXGBpNGJlecJkaUQRctooqMqDVBiVKAuDzhRZnpG3Da2rKKdr7Nt/F2V5oN+m/xq73Q6bjr5uyW5n15DnaGFXp6uBjnRqUjvFpgoVHFb3+5GliBZBa0UMc4LfIsYBjYqYbEjC0LSeKxsb+ODJ8gzXOKyxHDx4iDzPIYKIQpRC9fvJdVNeT3Qznnj0YR55+EGqxTa+rbq4NZMRTWRaeRyBUsNb3nwv3/Qf/El+/UPvxaPIhgXV+jpWa3AB6x1HTOL44TFH8yGz6YSyyDm0f4V9o5I81Wi3QKmADCzj8QpFNkEQ5rNVUtsgwWNNSZ5ZWtcvmKfB+U30/gmjlSUkd8TpFohGlCa6RONbrNJEwFVzaGs21jfxkqEG+5jcMUYPlqmSBdftKDzdXCeQse/goW4qW3RTT+cCKcYujKRtQCA3GTbL8D4Qk+A8ndfUR3yIaGsZjcekKIgJKKPxbU3wDtdUXQhISJC6j/TUdU3dtJ0NLESiRExZ0CJ4n4hJE6NCxBCCpyyH6P57GG3b4L3BmgzfOi6cu4CgWVk+wHBQkI1yFrMZV86fJTeBpQMj7rrrOBfOXWZghiwNh5w/d57NjY1ey4/98riEdzVF1r1k541j4/IVhuPlbpfmQrM6vcLqlXUSQlEOcW1ibWPavXSNoY0JWdTE1DlDjFGUpUVryDLDYNAyHHkWZk7bwNGjGUXZfUhSdgKTb4MolNct2T0XiW6RdSCFbspKaJFUUVqFTwZFRCQg2l8lu26vNvA+MKumbNZTNrcXXFnb4tSZ8zz+1NOIViwvr9BUnZfsbW99K0ePHCW4QJHnTJaWKAYlIpHRIKOwwtkTT/DJj32Q2fYaw9GQ1StzrkznhCwjqgzfdqElg3LAu77mHSztW2bq56TCU+juIzVjZcgWDYPpjH0xcjTPuHeSo5dWGI5KrBVs4fHB43z3CZk8B8HRxkiKQlS6s1E5TSs5dZ1IMUfsEnmmENG01YLtk0+TmwGhqYiuRadACJ7KBZwEMqvRKaDdAt1OcQ6mTWIUHLm1BDE0dYMRIYRAK+BRpAgxeNrWA4rMGpxvuw2HfSSmgNKdxlwOhpTAVtwihu6rZM45vvwtb6GtGz79yCO0TUVo286GCLgQaOqaFALeO5QoiqJAu05za5oK5zwkwZiMmByIwuiOeLIsZzAcEoKjnm9TVwu8qnnmic+xXdVYlTEZDmmamsVaxXhSkHCE0O0cc/786X5j0JbN9TlaPJNJgXMOpSyt81R1RUo1+1f2E3xD8oFZtc3ZZ8+j8gGzZs75ixdYVDWD0Zg777qLffv2E2IXAzibz/HRIwLGWspiiNU5kiyu8SzmNVUFKeZYm9ianiXLlzh253JvpetZ7jVOdPB6JjuRXXazQEoVMcxxforyHhUiiANpsZnptDABUkOMjhC7HS7mdcOF1cs8c/IUJ89ucfr0eba2F4SoCUlRlCVV3dI62N7a5pmTJziwsp8iLxgOhhw8eIDpfJvTp59m39KAY4eX2bh0ns3LF5lPtynLEXUQ5m1kXs1pje0i9/OSI0eO8fY/9nY+e/ox3GKT/UZxeO6YWOFNR4/Qrm4xMAUTV7FCgwnbWIYo54kh0ATBq4QuC8rhiCKf4OKAOmTYbMDITkhuwnS6hcknpKBJMVDkAei2i/LNgvnGOos0xyqFb2pi06IieAe1b7CZJtWehYvUSdGKonaBS5cuY49OkVFGSoITy+jgUbAjMIbFYoHzgaaqu684qG45Vkqqm55KS1XXoMBaS2YswXm0VgiJ+WLBmZMnmG9vs3bxPNViQZkX+LaFBG3dENpOowsxorVmNBpRlt1OKNF3L4IkGm1yoizQRhN9R1hZNuTIkYME33L5YsN8a4Mo0LSOEBNKORZV1YmbEepqTpZl+Cox3fKYNpFnjnmzQaFLjDGIUgwnS2iTsbq2hRWITqFUTmYFRdN93LvxxCgoLEU2ZDAYc/DIIZb3r5CXJeWgQIj44EAig7Igywq0MmijuvAUuro2lWeeteSZIhuWJNHdDjWqX4/du+/2HBSvVSSI/bvLu4b5/AobG6ep6isslyUDm2MzhaiEzSyIxjlPcDDdrplOZ8yqhvNXVnn4kT/kc08+wXwOKRliMGhdMBhMaIDZbM6srdhYW2cxX1DYHIkJ0y/Sr5oZs9k6Rw8vc+XSABNa3GybunJcWZ9R+ZZ546lT91EsrTVZMeStX/nVHD5ymA994gMsq8Q9WvPGKBwpCo7EhBqMWV45QGkjTXsFUQ5jCjIjSBJa35LpnDKbYOwYNThAjBl5sUI+XEKFFjcrICns0pCyWOm3Qd+irbbJlCGLEWsUKeWIEnxoaKoFOglGQdt6aoQQLZVdppEJ0ZSM9QDyAVXTYHJPMhmSlUg+RNus27ElJiQEQggk52maCqU1Smna1uGcQ7QgOmFE41tH29RYY6ibbmPPJx77HKmpwXsMkBtDcp62aSF1pojhsESUIYSA9x4lCe890UW2tqdM5xU+eCQGjEoY6RbqG6NZvXwJa4ThoGD98oLWtwAobSmyAuUVIQSca5gtakID8+1I62sGSznDoZBLhDJSNwt89OjYkpRFrGJQTHBVw2zeYEUhyqBNACWd7RKFax2ZyijLnMEgR1shhIYYPEpDkWcMBzllURJCpG0X+ABG54yGJaIzIoLOMu67/wH27z+GKENCEXd2Sd7T7F7L8J07Ilq0ZJRlybMXr/CBD/0KmVKMigEHDx1k38o+Du4/yGQwpppVrK5f5uTpc5y7tM3q5jZbs21W166wNU/UC1BJujgq5VnTFbVvqJuKGAOtdyitaHynWfjacX71CjEE9i0ZhrklhoZF21L5hEORrNB4aASiMiSxaFWyNBjy1rc9QCIxPXOaN4WGd4wGHJXIRFvGmSFlhsLI/8/em/VolmXnec+ezvwNMWRETlVd1V3VE0mJAGm7YQryhQHrJ+gXGgJMGJAtyLANQ4ZFwRZpim6RVHdXdc2VU0zffIY9++JkN9mG70ig2UVuZAKRSHxAIBB7nXXWet/npZABIQ2Ti6TcQ7GibhdUqScGRwwDpTkjacguUZWaYlmSo8dNJ3TlKRYKqTw+nLBhS8wjpVlg6prgBHhF9p44OFzv5lmWhylAlAbZXRIX80OgKjswFao6Z6TDH0eiEDStQYhI9Cf8Wz5cjAnvIjl5Juepq2ruaKRESTn/XO3887LWUZUlzsE0RmKCnCJGVSThyWLWxE0hoqsCQSLaQGHmTabUen6akGd9mxRU5bypDQ5SBCUzIkcuzs+w08Tm5iXkyKJrCd5zOp5QStO0ehZxh4xzYXaQuGneJOdMbyeGu4ndJvHs+hI7ek6nE03bkIUniYm6qZjyhAiKcRgRSGRZ0ZmSyU3cvPwapGa/3dEsFhhV0tQNwiRGa5lCJNuIMTUkBSmhRZh1eCiUMtRVh9QFZMGiW1LVzbxIe0vaE1m+HdkFwPya7+zf7Py9LXa/VMIJyMJzGF7y+Ys/Zz+9YbG44OeffsnuT/+YQlesFyueXF5RlwUPmxtu747cPozcbnZkkVgul3gXebjvSUFSlx0ffPAhox356LOPQGa6rkKZFqEkZVFAzhy2e/rDgFaKxaIlC7A+4KLHLBtMTGzuN+xdj9eGKOfBdZaOVngWbuDw6cfUmzs+OF/wXCeWaWK5qFica/ppzkeYhh4lZtuWlDPkMueA1omi0AzJMIaItiMyKOzuNXa8pTAJ44/gB/IWbC6wk0UoQUiK3gq6boW1J6bBkuyAs3NOq0+B4AUjmrq75N3f+c94vTlhXSZliUNQV2eUzQqZA/1wZHt/S1MPyEIRkiBhAMnkEt45vI+kZMkp4b2fbWeAHef/k1Kj1Jwpa60lxkhVFfiUGYYJayc4nmYyiYJpmhjGkcIY2radO7DJopTCe491FiGgKgy6qiiM5tTvIXkeX1+w3+5IPjCNA4ftjhwyhdJIAfZ4IOn59VwKjfCzJU2Q0VrSNBXWWqbR0g+WHDw5a4YxME0jUmeklFg/oeKcdZuyoFRmphynxMP9PS7MG+SYMtuHLY8en2G0pjM13aJjGiZySpz6E8FLjJ4/i9CEPMdWmjJRlhWCiJsmaGcJTiL9CkL+N/38vS12AjWHrDDw+Ys/5d/+8R/ys8/+PSjPe8+/y5ANr7Yf8/r+yGevNlze3vH08QVTf+Trl7cMo8DHREqBoiiwdoMdA0bVSGH4/d/7zzGl4c3dG6YwsFgXFIUh5oQxmvP1ml0jODSzTej8fEmSApcSj999QtUotrf3xH0klZqkK3yIlCKi80i+PfAX//pf8uH1E74jIu82JZfSUUgBwrE/3lE2a0QIaJWRUlO1C6SWaK0JboebdoiyQK0eobsLdJKgIt4d6LenOT8iRpK1iCahdEfwkSkFMgoXBfvtCZEh5ZnQK0QmRE+MGXRD2Z5z9vwD9NlzzhpJf7JMw0AOE0mWWJ8IyQOR6Ab6ECi7BTFLyrahqFqENuz3CZU1dnLEGCmMISMI3pOzfDvUD/T9gHhL9yiMQImIVJqiMEBiGAZyzuQ059GGEMgpzZmyzB2jezvHU1qgjJkpK1LyzjvPediUBNfT9weEzHzvB9/l808+57DdE6ynVBKRAzZ4nAuMo6WuGrQusNaSEdRVyaLoGIaRQQv6vkdJMeOdEISUkCETwxz/6O2I1iW6qOmnic1ppFwsyUKx7FpciEze8dWXX7E6b3n87IKyLSgqiVEVdrR4Z7FTxGhFciNKSYp6AcbjvMPZAWd7Fu2KRbvANHLmIguFQv6yw/tNPn8vi90v6SUpcrf9lH/7J/+SF7c/5ThtCMnz4//459T1O6RcsD9syTGwPhOcxpHD6UTvPEo3KOZZklKK5WrNYXPCyIrhNPE//0//C0U9EyeKomQaJ47HHussUgqGwxGix6jI2bKiaRU2RqSuiCoTpGeSDltKlGhxU6ZO8KRWXFU1P1yteSoD75WCdL5A+lsqoKwavF6jdItRNcHuCd5SFIBMqHINyZNCIAVP0dVzdqsuIFVkvye7CelHDrst6eRQQrA+l9RtgYwR4QfIiboS9JOjMBUyWsbpAHmC5NFSI7slYnXBhObowCwuKKXH1IEWS0qKUz+Sk6PQhqAV4ziCLvEJRp8p60CICSHm7ssxsNvtmMYTSkliCITgUUox9ANDjlSVgRwpTEmIjrH3c4RinLfEAFprFt3irWjZE0Kat6xSsVg0s24tOVKMCAHeOR4e7hESpJRMdiDlzIvXrwh5lqrklCmqkqpaYB92pCyIAvYnS1nAcrmY+X45cnm2ZCehrUu22w2TnfM9qqqiLCqcn9htDywWDUr4WR4TAnaa6LqO3//Rf8n2cMDbifuHLa9ubtjeb3nxxQsKI1meNbjaIIUkhkROcDpNbLc7ShlYdg1NVkiTSEwUZYmzE6+/+AxF4vF772Pa9YyLouA3fz3x97TYAZAT1m74kz/939jsXvCtb3+bu90D0QbwDdvdgdsXt2QXePL4ikpptvc79scTUpUYWSKyx00jp+PA9eNnuNMDt68fmKzjq6++om5rFmcdj6+veH3zNcNxmvHd0eOPE6XOXJ43VBWoIiETmMqwulzTnx4YnZsXEt5zHjLvdi2/83jJh1cd103J0jSs9ISvE16AB4QoEOIRdXWGlJHJ7nGTnQN2sufQ90gyIktiyKiQkMERsmOyIKYJk0CiWHRrHA4l4DQN+DQDRa07IQUcDnsCJdRrYggg8nzptaFdXCDX10yqZn/ckTY3NFlTVCsG63DBoc2cuBXj2zF4VqQo2O72SF3g00gTZgfFNFrKoiCH+LY7S9RVhffzQmDWuk2Upca5CSXyX4NRzguHaZrmzWuMCKFYrVpcCPSnOWIypUSOEa01SknqxuCDJ4b59e7mdmKxaDhbLymrJdv9jvvdgdP+wOQ9MmVigsNpZHOcGGwiZYESEolhcnPRcmPPzasXSDUDN62zFFWJEHIWR8eIVgJTlDgXMEJgdDFDQ1Om1JrgHO8+f8ZHP/sZN2/e0B9Gksh8/dlrtCxoVyXSZOq6YX1+QVU1pORxTmODo2krJivIziOEwFuPWnSMxw2f/OWGh9sXfO93fpfl5XOQivTX7JC/qefvbbHL2fL5p/+BH//4jxjSFl21XF/+I8beIULBy5vP6PcHnn/rGe+995TN3S2b2z2TDxitqRvDarUkh8g4WB794An/xe/+E/7Ff/uHpLj/pYBTCEVTdyyaBW4MHKcjOQpyTCgp6KqatqmhlEijEEZRViXJtsgpcpESpcz88P0n/P57T3nWJDp6mjIh8khbS05hRNcaIRR1vUDXa3TdQRwotKFoF6hCIXWBkoamW+AGCPmItQFxOlGdX3EUnuQdRoBIgpSgbCpEnBj3B5JzxCywwSKUQogKVTXsTpayqNCLC1JsKFHkYsEoKkJKZH/g8Pojkhu4fveHHE8bnOsRsiJEiQsBZy05Qoia0Y74MM6fjRGSmNFN/byBlFKgjcYHSwh+djgIaBrDMPSk4KnrimmcYyO71RptNOnt6+owTG8pJpqubemPNTHMcz6jFNZaQvSEaKirGh/noBulNClF6qblR3/wB7x49YL/58d/RkhQFxXH+wfGqed4PJKyRmrFNHoKLbDOosRMAzZaoWUmJs/pMAGZopxtftZ6fIzkLNFmztqJRIbpiPeJjOa02/Hv/+j/QFcV/TThPaSYmabArd/ibSKJWfi9XC754Lvf5eLRFT4KcqpxMdPbgsPksHaiLBTLtqZSjpA8fup59enPkMPA7/5X/wzdlWT5m72cgG96sfv/JtL9ij/VkcIeLTzDceTllztW6/eww4k//j//L7abe9qV4dH1mg8+fJc/228ISUDSEAR+ChTLkuurJ+ii5vXrW773/od893vf5mG9JyXN7cOW9XKNQLFoWw7bPaUx+OQxStCUmhw8IguKquDscolQkvfffYfbrzR7WfD4suH7Tx7zj59fs0hHTDxixIAIA0oWSBkpOo9SEiMrJIqQT/SnmUDihz1xOlA2LaVqKc4MZtGBSuTcM+xvKIaRwb/ErB5h/TBbuWQkhontfoeKI5VMuJioV49wGKrVJUIvqBdrllmw35/IMmHMGiEKdLGElBk2N8g44I9HJgn3uiCGYtaMKUWlGh62lpgEOc2ZE22rORwPM0L9sMNIg0wC6wOBSF3UaK3oTydSnGemSktMoehEQ/AOrQ1KiNmTKiVKKVbrFVJItO4xxqB1weQmHj26oqoqpmnW8wFzcLiYwQKFKWcxcpoXOlJpPvnsa6q25lvvf0iwPbdffcWw31GKgmV9js0amzWb7Qk3TuQ4ocRbBqDWKJFJfhZG13VDWVXEmJDKzs4RJenaBcPUE4IgZYgJnBsRypCEpB96ghQoWaOERiuJyJppeIvud47T4YHj6Sc03dc8e/d9VssLTkPPYbhDiFl2VRrBuKhJ1pLaQJECaup58dO/5P1vf5+L752T5C8oxr+555td7H7l/KLQzfhpIQKLquL98yco7znEyBeff8z+4Ll5uIeceL66ZHd/x88/+lOUclSN4eF2IsqE95YnxYJHlxfsdjvu3rzmT/78j7l6vubb37rm0eox/+K/+1fcvr5jub7EFIoYJpQMOBWRBTRliREKXZWosiL4jJ5Gdj/9T5R3t/zTheKHl2c8Oi/Q7oZx2COUoGwa0BlVgixGKjzjaUKRIWRy8li/nS/rmDht3cwwKxKpt7g8oJs15coQZYdWiqmfqLyj7VpOO8fpdEAVGtld4GxgsBZVtCzP3qNNoNqGZCRi9Rg/OfCObI8QQRaG7qxD6prt5oGcSsgTfjwxbW9IdDSPH9MslmTZELIi7fZM04ggoNGcrVc0bUEMCe+AbMhhBOsIeULVCTedMIVGm4g2FZkGoQKnkAg+QGHIWnI8nRinaQ7YLkpCChAlJge0mrtCrQ3LZYExmrIsaOoaU86d4s3rV7icqcuasijxDm5uX6NNhZSCMASGQ08BnC3bOV82Zk6TIxiPTdDUawQTSieUCjNctVBIFGVZ8/z5M968eY0tBUIk1FvXQqErQhL0wwkfImj9VgoS2IzBsgAAIABJREFUcSkhRUXOkiwSSSYiASPjW1CJZJgCYT/Rj4nD4Wecr9dEYLA9ITjqssZIyW0a2D5q+PbzMxYaLuqS1bLkzc2XLN79ANM1/7Cg+Lt9fjUyJP8SwpoJ1rG727Jq1jw697z+/CWvXj9wc3ck58Tl5Zr1WU2M99gxsewuWC0Td696juOBxXLNBx98F6kUL1+9QUrNxz//nO53fouuMfzJ//3vOGxvUcU5b756yeH4Nb53kBNNUbBe17SN4fHTa37vD/4pWgW++Og/UtuRxa7nKmcuqxrdD7jsEEXGJE/dVDS6JNotsR/xQUJhmMbElMKM9BYSmTW6UFRK0bUVqmlm14d0DKcdlZDUqyUmzLF/RR1AaPb9iZgUpllStg2NbsgUDMMICCYhSEZRNR2YgnqxQrLn4CfwI+RIf9iTvMMGqFSCLOh9QKTAcb8nyszFs2ccNg80K0ldGYZS0zRLQvDYfiClTPQZITNN1zJNibGfBb8pBZSsaJqWpq1ZLBZY55EiUXcdUkh2+y1FUWDqku39A95aCm0wSqOEhJx5uL9HijnRSymBKQxKCWIKSC3puiWLbkGpNafDgUKVCAQ5JUL2ZB8YpompP0LKpDz7DJ49e5fXt3ck6XE+UpXQtR3OJobhQIyCsqpYr87Z7I7sDye+/upLnLWInOa/UhFjREo5u2hswPp+tm2LPIMS/hpsoigLkgiYsqIfexDzGKKpOxbrNeTM3f0t/fFAt1gw2Ylx6ul1ic4CoxxtkdCPV2Ad3jvqJ4Jhv2V7d8NVfQ6y/DXc4b+9840udn9FqvvFIymRiZAC+7t7psNIXSxQYmC7HQlRUdYNKxKXFx3rteLy8gmrZcM0GnaNoJCKQKB4e2kO+x6yZhwDp1PgZx99yofvPOFhe4O3R4ZjYHu3xcuREoVRgtWi4d3nzzhfG66vr3n38TOuy0T35c84lzV18Mj9iWgHdsGSFwXt1YKynPlxbpoYTlu0EcjcYEeBNpeYejFvc31EFUtSdqAlMFvMYlIkGcgK9ocdm92OsqhYtpfIwuBlQtcl0jQgLEEk2uUF2ixI5UjKlhAdRd0gi4qQNKfNFpHGt/w0y3jckUKknw5EVdKU3Tz8Dg5hDOfnZ4yp4bOPP2J0iXpxT7M6Z7RuFtRGx3jY8rC5m90MSlOUI8HProWyMsSYmKaJsq54/uxbCCl4/eY1QsDheMROE0VV8/jJU2KKHDYHSlNR6ILxNBAmR1lVEBJJzBtQqSRSzJt65xzb7ZZp8nRdM2vlpMI5NxeXmCAFkAo/jNh+wE4OFxL3myOrxRn96BmdRStJVShIIzm6t2ltCoSgP51w00TyniEcKMoC593sfBCSlAKr5RmDy2hVYJSfYxe1Qso0R0TGNBe+CBfnF0zeYf0vQJwgsmTs31KeEWgpEDEjIhgUGoHKApUUfvDI0aGjxR0mHsovWeqWl198zuWz7/CbPrb7Rhc7xJylNHPiEoKIyJ7T/p6Hm1eURUPT1Xz88o790WPKllponlytuFwrus5TV4K6rDCiJfodOXoWTUWhFZ9/8hmbwwldlKSsKKslumz44uUrssg8ur7g7tURO05YlYk5UBaK5+sldaVoCyjtgRd/9L/TXnV8J3lMPzBte+wxcPb4ERSBRasoa0FRKSgrnHXY5hFUFavVFVVSBB/mjasCHxNFs2Y4Hee81JgwdUnTnZGwOJdRCrJJhDjRD1uK5gLdXlIvFG7Y0/e3IDOqbnFeUjYtPgn86CjqgqIswCpOpw3D/gbpJ1QKECxMjqw8PvccDwdSmAGjMSvOv73i6CpuHu5JCex4wgaP0IYcHTlG4tTTFAZRlTRtx6m3b/NtZ6GtMQXaGLrlCmMKDscj/fGEUoJhHOn7E0VRsj8cAEFV1ngbOO5O9EPPNIx0bYuUkpAt5DSb5OsaH2ZpyuFwZLM5UlUFMkeMUui3YTrROQoxs/LCNBEmi1azI2EaLR9/+hVSC5q2IsYTpVGInHHRUxhFVhpdlJxOIykECi2pq5ayLDBy1izOmPWJm9sbJidx3mN0geItMtZo8ltt45zHMefHeusoiwIpFdMUccExuWmm7xhNioGxH0gpUpWa8/UZ/b5HxkRymdhP1KWif9jzsh+J7Tnr7/w2OYdf503+Wznf7GIHgHhb6BIpDGR3Yvvmc1I4sTxfczgdeXW34zhEhumE1plF19F1IOnJoWQ8BKqywo4jtREURiNF4nDY8XC/o2g6zi8uOYyObr3CTyX3x6+RRcHlkzXcbbHjjNjRTUFRCvJ4xKTIZW753cctz3Lk4X5Dv9kw2oxarNDna6QeadcV3h5xKTEcTxTdmvNvfZ8Y80zHOJ2I8YTM4a1JHZQqMSWEOIBMFO0CUS3J40hVSIIfCXlg9AM+Q11fk8uG4/FEtI7wtnvZ3d1BngOfffbE5FFSMhwOuDFT68TD7oEye2SO85JBGKZxtkWNxwPRRXRRkGrP5z//GG8uULpktVrjM2SpiVlQaEM/TnjnCDFSlBU5K+qmRZuSafIM04gxJWVV0XUdbdtyOB7RWrNcdW/TT6EsSg6HnhgCUqhZQBwTRhtMpyiK4q3URGLHiRgihSlm2YkxSKHZbA7cvrljvWoJUlDqYn5d9WEuSN4TvcdIhSlqaCMPgyXkzLJpODtf4W3BYXNHZTRtXaKLEi8kh7cb4cIYTDV/f3NHJ6jqkr4fSSljR0sMmpziHIKoZ3R6zongPQKBMRqlS477PXXbMrkJJaEqJUiFCHNHJ9XsBZ9J2pmcAqRAYSRKF5AS1nqylkz9QCEl68WC7/7gB+jiN7yt4xtf7AQy/+KrgBv27G6/JPsdZZXZHA782Z//Oa/vd9TLM6SIeH9gv7+j0or1UqFFw34TGHVP8oG6lDRNSUKj1by1M8bw4Ycf8tmr19xutqQYOAWDPR5YVYrFuUH0Aus8F48WXCxrrpXj+0XNc5cZP/o5d6XBDQeU0SweddTXV6yvzkjuQJZ+3gKLmYixePScolsy7ncM/Z7QH9BpRrFbZ4lCMPYjpqhxjLgUsP2J6ZTo2o5CCk6nibPLBUQQ5ZpYLOiWHdPQk0WmLBTkgFYQpwHhLZP1+Cg4cY+zc2GzcaTRkuzA+kzVXlBJDaeRw3ZL9A7bT2w3B2I1sHEGtbTUV+9iqg5vLdNkUcowTiNTbwlJMNpIlplalyy6BZPziABKBqZxLsZZgPeOFy+/RuRETu38Khgzl1dXlKbksNsTY6KqG2IIjH2Pn8aZTJxmaGf0gXGYEFJTVBXLsuXy8owYFSlGpsky9kfOV2fUZUUGpuBJcbaszb9fAq3nkOpTv2d9vqRpGqbs0VJhh9kWGIPn8fN36b96yS/82TkGyqIhpURwlpTmoqeUJOdEjG72xcrZ61uUBcoYoML5RMqSLDTDW6eEFIK6LtBaIFTB/WaPMdVsrZsmvAsYI8lY7jc3lLJkWddUdcmu70n7B5osyBn2++NbMMNv+i72G1fs8v/vP0WGFB2H3Ru2Dy8gHLEh8eXrBz767FN2fc+z5+/TXSz48oufYPdf0tTnnK2WFKpjFIlvv/8hb97cEIYDi64BWbNcL+lt4jiNvLl5w3a3w7owB1BfXvPzn/4HjuM9OlouuiWmXPLt77zHf/2j36O+fcX65hXVbsfu/g5vFLqQ6GXFclVz/a1HmFIxbEGmTNd12AC6O8OYlmlzhz08gJ/QOcw4IuY0+OAn0jAg5JyERQqsLi4xqaFZLNk9POB0iVUdq8dPoVojihbrHWVtiEEjnERmhVbQ2yM5DOAFBI2sInGa8NbOXLuU8D5ip8iA4/rpE6qVZrf7S0yRqdc1HHbsQyT4RF2UNN0a6yMhZobRIrMnJxj7EaUlWhe4kDkNE7puZz+okIAiJc/YD5z6IzdvAsf+RGkMXdfx6OqKR0LRNh1lUXKxPsd6P9OFc+LTTz7B25FpGklhXhhF7/HOc9jvaWLGuoD3b9hu9giZ3wIRHLfuHqM1hTYICUZKZErotwli02RJgIuRl69fEePEojaslks2tyPezyy942E/487TLHr2PvD4eo2QAl1IElA3HS9evaYqZ0jB5NyMZZICpaDvj5AFpmgw2jDauduc7ISQkqYtqOqa/WHAO0tOghgC3ntW6zMyDuc9KURSDEx2RCnDlvBWNSBI1qH0/HqcRP6HYvd37+Rf/TpLSJBsz37zMfe7n7LZ7XnYTRz6yM1+R9Ytz54+5+xyzYsvfj4LR8uC89Ul6/aSafea9771Lb5+9YIvPv2EwnjKombZdBi5Z7/bcJpGTlOi0QVn33qHsjYcn6yxfeJ09waTj/zO00t+69zwfHPDMmW2fUCpmlpqTFlQrhvoDFfPn2DdxGk8oeMRxgFpGqZYUpaRdNzh9m8gTFSmIab5yZ5ypKwKCIIJj5cDqSow9WPKxRMQNTGWDPnEUSTWFz+gPHuMrBXeH3EPt4Rhhz88kMeB7DwIj51OEBPOgfMOe3pNzgLrHGOhCNHOnOVU0NTnbDcTPo1I01CeNdjxAGmBDIbu8j1Wl++R0cisWbbN224ukkWg7AzRRUwxhzl7Zzkd9ihT0Pcnko8okYnB46aBfhpQWnJ+dc1733qP5XpFVdeEkGYoaS1YicRhv+fjn33MV599SqUkBYnk502qkBKjNEN/YLATGfXLKMXgI86F2UObJ4axRytYLRsKbdBS09Y1Tx4/Iigo7QrtPM6PnAbHetnx9OkVzlvG8YApCsb+gMpxtt6pAlOVnE4byqYiZk9E4KKdacIizURmU+KzIOCwwZEjuCnixhFTZ8YQ8TmhTMFyfYYuNXebA2XREuOAlLwdC0SKwuC9RyOJKSLSXHBTNsRygVmt8eOBbtnynQ+/gzISJ/5hZvd38vzC+5rJZOEQ2TFu37C/u+PLL7/m5eaBF693xFyjqprLxRV123A67mnrEntQZCIpTyAmnD/wb/7N/8qXL15DnBXxQkbG6YgLE6Od0ELMuQLCcxx29D5ztmx59mzNRgWubc/vrRqujwfCV19zkgKtJeurR8SpxKeA1HBxeUapJPv9hqKA8Xgk2p7FuqC7uIaiRORMWdT01nIKFpkldd2gtCJ4OyfV54yuW5AlRXmBFZkpearCzDCAVNN0ZyhVYqeByc5K/OwjITjs6Uj0gcXZarZqVTX9cEJKQ35LFs5Z4GxEKjPPj6RksgnrJiZ3JKuSpAsuPvg2ad/TmJZi+RhdrxjGcXZqCHDeEmIgM8s3tFDkvxZXX5cl14+f8Bd/+ZcgJV3ToI2kqgva0CCU4vLinOAtp+MBIQUCiSJzd3uHSJ7gPcNxy9QfyVpyfvWIy/Mn3Hz9NfvTCaU1qqw59BPDZBnHibIoqX6hzQuRvp9ngyFYNrv9nC3RLen7iSzknFdRNrSLFadDZLc/MfYHHu7ueO+dp6zPF6QcCCGz2Z7ICE6DBQQ2OlSWnF+dE1ImxMxl/Yjtww6tGsLmNC8WCBgtMKVBpjQjq9xElgqlFU3bIATs93v2hwNSDMQIZflXweDez/TnlDJKGcqiJAVPCJ7r5WPeXTccX+6Idk9wR8j+G+CM/QYWu/wrb7IR8pFhd8Pu5guwFoFBlDU7d4sd4dHjay6urhmnAa0iJI/RGnImxpHt7jWT3TMMI4fDgarULJcVSWpsPBKFRZeCdtFxdbHm/m7DsT9yedZgwshyv+eDZcU7PrPa3lD0E8J7dFMxRoH1BaIRLMqOZtlSFIZ+v5vN+GiSSxR1g2hKvIamNoTj/KRGKZz1aGVQdYGSAh+nuVvQiiRKZNmRywqbwRJwdk82JRerRxTV2Wz/chmhGqRJRKnnzxqN94neZUR9RjYd9fkKkcScb6GOaCnwKaGNxjmLtZnBRpyLWJ+gAi9KfH1Fu6wJsiChsD5gygKpBNPUz12cZcZDpZljJ+Vsys8p8XB3w+m453jcYeqawkggcX5+hikKdoc993e3fPrJz0FJ3n//fZ5cX+GGkXG7w9uenDKViFyuWtqmpm0K7DTTS46HI1kb6uUZTVmidUFVlOz2e+q6pmnq2XFhoEslIcwLlN1mj4uJrl3w+nYDKdDWFe1iBWS2d2/wgyf4A0qXnJ9pmnYWLPfWI4sCoRXDOJFlJopIvah4/zsfYl3k9ctbyrrj6y9fz1DQnBAiYaQmhEChNUFmckwk5oWOKTSn/kDfz/y7eYOt8T7g/ZGUMhlHCB5IFGU9h35LqEs4bzvuXn6FsQNOe+5uX5CCmzWE/yAq/rt7BJng9ty9+gTfb+jqluurd/nko78gioJudc7l1RPKZv6F3m9u2G02b0WWBTkKwtthsRS8DeJJCBm4fnJF1CWf37xisax4591nCCpWYyafBlQeuPAb3m/hHRmprJ2Hh62k7NZMLmCUJivors8oi5lvdvuwwWUHOhNcSdd0VEtDrkqShpgs3g6kONAsStp1S4iJqBzD0BO9Q+k1RbsiFA1JNdikwGgKY/A+sWxXIJbs+4EsFaZqgIwsIqFoCLqkWa4pGqAouT+M6KLjbNVy2O4Y+oGsDIMbadoFVV2T+hP9NDF4jy4qpEoEAev1OUkVRFGiTDm/vqWMKWq8t4RoUTJhNEjMHKxDmiUgec7tsM5y3G8ZpxEbLW1pKJTi4eGOtu047HYcj0estyxXK47bDa8/+Zhxe8/TizWFMbgQET7yaDF3wNlPxJxQApqqYHCeNy++wrQLUIYoBDFN7A/3OD/QNDVFCcaU1O2KhKBbtoy9o100mMKw2+0YnENKKJuW1fklInnceOL13Y6H/cQ77zzh8nJBVvPDqZEFLsIw7RmDZzeMjD6idcX52TX/zT/7J/yr//Ff87OffIp3EakFUmS0UYQEPiWsd2AMi6oipYSzDm8dpiiATNc1MzHaekARR4dUUJYlbg70oNKZstBcXZ7zxetPCd7NGwklEUr+Mub4N/l844qdEH+tu8uJfrtl6HfURoJqaaJg1V6ybAZC0JxOJ5brRxwPBz795FMKVeCtgFxx2ieSi3T1JY8enfOw3WOjwdQl3XlDUprzy4aiF1xdLLh9uWWVLGfS8fuPL3miC5ane/RxQFYFvhCkRUlcLVmWNV3R4F1gNx3p39JTYorUXcXjp4/puoqqlIQ0kKRE5owdTrNtTEaas0tUWdL3A6rQTEdLjh4loZAFpl6hygVF2SLKgiQF1icEHapYMDk7G9RVh5ElWip0u2SwK1CO2I+Mxx6jDOvLS6rFki8++wJJ4t3nz3i4ezP7K4OjqEvKKJGV5tGTJ7x49TnCWYSSSDLLqpjjDE97CqMpVEtwET8NiBSojSIKSYHC4iFnhJjTr5SYM1DL0oDWPL68ILjAF3dfMA4D64sLlNakDIu2oTWK+80t7u4Vu91LiqolSkNvHWW3YHn5iJev3xBjZOh7FoslRhvevHnNod/x6OlTvvX+ezSLD/jJT37KNPU0bcOTp1c8enTG6myJ1obt9siLr96w3/YonRFqgZss1lpEUXBxfU1/2HHqe1IW7HcT+/Fris9vMKagbTuKomT0ghAKLs7O2PcHbm4eqKoObyUff/Qp2+1hLrJ1QkiP1MzLHT/rE2UGGwL7wxGtDdPkkG9f95GSzMwZrOuaYXQEH2neshVTmDNrU/K4yfLZR39GozxZCkSCYXcgjAdU14K6/nVe7b/x+cYVu185CdxpzgrNUhK8wFnJ6WFA+nkWNPUDu80Dr169Ynu/4enjC0QjUTTsNkcOmwPXj5Y8bF7jw0QSgJaMvud0GinKRD46+v0dZv81T2TiHz1q+eEiUOZEVi36fEV7scbaiSwSpjAUZUVC4IaE84p+mFBVy+X5OVVr6C6W6FIR0ojOhpAiY39CYMgEyrJjspnkHSFLxsOE87Co51xWnyRF0TLZTIiO1pQkb5FvOyalMib3HHZ3eLmiNmfkNHEad2hVkZVkiiPRO3y23L3+muKhImeP1IovvvgU5yZEns3xQhvK7pKqWHH57CmT9CA1t7cb7r/+iqY9Mk5uhmsqhSxu8X5EqTTbxaynP03YKaLr6pfI9RgcINBK0ZUFWSjuX76a0Vdilv10i47vfPA9lDTc37zm9ecfI+1IEyeq0bG5v+doA9VihRsGaq1otMbmRAyB/nicN7oailKzWhX89u98wNXTZ3zv++/jnGO56liuWopCzBvalHh8fcb11TkvX9zy6uUtDw8bvBtnSvPoGcYTw/GANoblcoFpalJK9H3P7vYBow80dT1z8LKkawRGNjy+fsI4Wl5+/Zo3rx54c3NHCrO+TulIVRR4Aklr6rLD9ycU8m1OykwhLowkBg9aknJGqPnVV8jZcyvVHKA99gPWeQodWa0WPL9SyGNkHD12Ctx88jH3P/9znnRA98Gv+UL/zc43pNjlX/x5ewTkRM4Jb6cZiy0Vzlnu7jf8+Md/gSwNT54vcNHz0c8+5ubmhnefPqapGn7re98n+ZGPb3/GD777u/zoRz/iv/8f/pBpHFEiMYwD+iTxMpNyoNOC4fWX/ONzzffPFjzOExemp1utCeYRQRooJe7GIZ1HhoRHILoFet1wvXrC8dAjheHy0RlFKQmpJ2tBCprgNWBm1M9o0cogREWYFBdPHlNmOO4fqDuD1oKIwhSGerlkutuzvbvj/vVLqkoz9HMxc86RsiULxaJ7Svuo5XZ7z/644dHTK5Qqeb39HO0HlCkI/cBwOLFar1m0LW4c+OlP/hNGZnw5D/dXVzWyrPjqxVdcP7umqFeoouOTjz9nt90ihSbHzDSOlK3AWgsEKmMILmKUYYyWHAI2J0IIWDtRFQW6rOiPR6bJ0TQtiFnyopXi6uoaISS73Y7N5oG72xtyPyAny3TcMDgBpqRravrg6U97opBMztN2S1KKrMo1508v6M6XPPv2u7zz7mOqtuXsrEMpASKRcyCnMC9w/IQUkovzmsI85vrqgk8++ZJX5hY7eo77Pf3xSMgQfESazPr8GoRAmh0+KsZh4NA7pJD44Pji868xzZw57EPk/n4LWc4e2CznjWyIpJC5fPoOd/d7mnpNVpJ4OM3xkhG6bkUMlsEe0UlTVDUhZlKefco5ZcZxpFk2mFCQ7bxNL0zBqlOk6KlWgn4v8Js7PvmTf8ej55eY7td1v/92zjek2CVmkuoc/SbyHDjtXc8UDsQI/WHkxavX/PGf/jFTDFyfXzNNI9s+8OJmS9t0NE2HHy2ffvwxy7ZmvbykKEs++/IjyloiVUHOjiwSQmVEzjxen3FRa86myG9dVKwrWOgGwsTgB5KQCKPo70f6MSOSZNkapDasL5+i6jNuXm6YZGK9XhIKTUoT0VtqU2CaJT5dkGRJdpH1VYHzluXqksPuhGzO50StRqOqkeR7ZEjY/sDx5VecjhPOerK1bO8GQh6YhomrR48pi5bt5sDh8DXxdMAhWRea3eefYscR3/e4lKlEgSkbUBmfFf0UePH5S4aDJbqRdrVgebHm9n5L0XiKquLNixcs1o5F17E6W7NaX7J92NEfjnNnaQytWRG9IwRNUbYADNNEjgEQaFNSFAaRAruHOZgopMxu6lG6QBUlQmu++PRzYmI2yPsJVRqWz99luK+5s5Inz66AiM+OojY0qwabNUYYyrZjsWxplhXVoqJbd3TrFXXborSGHEjJEoPDOzcLmkMA4hy+IySlFuRS4O1IqQ3Xz6650QWFLimKlt3+wGFM2LChqSsWZ2ua5RI3Wo67A95awnjAh0CYIvGhp1suQc8Zsqu2IeZM2Xb0zrF69Jj9MLHvBx42O2AOWhfS0CwXCGl4eOgRUvPeB99lfzgi5Sz1efXyZqY4FxVCzhY2kRKTD+z3A4fhnO9+8A7p9IbtFz3WZ17+5Y/56PyK337/n/96rvff0vmGFDv+alOUARLkwDgcmYaRNzc3/PzTz/j8xQs+f/OKbrlC65LDceJh2+NcpCwzbbfkcPeS43bDrij47oc/ZH1+yc/+X/be5Ne2LbvT+ma1qr12ccpbvbqIcJW2bAKUSJCIJMX/wd9Hgw6JTNpAJiAhQGnscEa8Ol5x373nnmqXq5o1jXXTEh06GVLYTx7t0zrSHHuuOX7j+77+JXe7LcuzM3b2gFrUSB9ZAx+dX/CublnZwJNWIZMjhxFTLWZLvJtoyoqzq0vWl5dEO3DavSHZANni/ImH3WtW6w0XTy5wdmDo+zkE6hPLVU1ZrJFmRSMqlDRkmFWGBXgHIhcISkyh8RG6/pYsDLsfXlLUK8LoWS0WHMYJFTK4wN3LV2zW5/SHIzHDNHTUmydURmCnjpQCxhigIEaJDIF+HBmnke3dHb7vKN5GRVRR8/Sd93l1e8dg9yzXK6q65vbmHlV07A8d10/fZ7B3BASL9RpVFGilGMeBcRyRUjBNI0VRkpIgS8VitUIJydifaFs5N+BxQEpF8P6t/i9w8/o1dd2yWDSMw4j3kfpsw9lyyX6/JxfFfCOLkbIs6a3DE0FlFpXgyTtXnF1uqJc1qjSgFO1yRc6Bh/sHQrB4N5JSQmSBkhKpmMU+k2UcIv0pYoeRrz7/EqMrlssVz54+43QaADlrOFPg0PUkaVi2C8qipqkb3Dix3Rb04zhLgIbAkEb2h5Gmqd+6ICQXV9eI45FhnAg50yxasnZcXF7xuD/SD5a6rXncHTBlgVEl97cPFGWBEIlhOCHkvJlig+fu4WGe5L/VKE7e8+W3Wy7PV7y7XnP26Yq7+y334wO/+r/+Z/7ov/ndHO3fVv00ml3+96awf6/BC3g/8PU3n/HF3/ySl3dv+HH7yM3jI7tp4rxecDgO3N4f6G0mJ0X0iapsiMsVrx9ukFHy3nsf85/9s3/KzeNLHk8PLMuS7vFImSIrn/n08po/fPaEc1mwiBFJxHqPVGt8cAjTU2ZL0ShyVdMsWnb3b6h8g5SJ+/vXNBdPeOfDZ1T1iigzXkpE1aAomUKgkkt0tQbTEoMgJDlnnsSsuwveUShFVVZIAlGpULrQAAAgAElEQVTPLtGh62ZNpJmnkA+3j6QUaeolZaHoTz1Db3EugpJ4Fxhu7znuMz4OhBCRoqauVwghUUozjpbgI1q+3R8NFlE1jC7z48sbmtWafXfisD9hTInzkrHryFnz3Q+vuLl7QEnBarVkUxRvw60OrTXWO1wIhBBZLM7YnJ/z0Sefcn93x5vRMtqRlGax+XK1Yr/fY6eJwQaKekFTtwzdwMvvX0L0/GboydHhdMEkNWdnZ6TsmNyIVIb1ak3Vtly9uGB9taRoDEkkorcEy9vtgo7T4QAkpBSot3a3FAJ2CEyTZ5oix4PlsB04bXt8P7HvdmzNA5KZwpxjRKRMVS8ICB53e45dz2bZsqgq6mbBmTKsYsJ5z+N2x26/J2dFRjH5SFlVuBDZ7Y8ch5EX777H+nrD4f4BpTVt2zJYx+P+kX6aqIpZOdl1A2aaODvfoBSk5EgicX51yWgHRJZoIyhE4NTv+GFIvHMz8nRZ0jYFF1cF/c2B8icQtPtpNLv/TwWcH/jqy7/l3/yvf8njmx84e/6UTWn4fvuIKCqQhsOxx7qId5m2Xb3FNe1xwwAoinLBRx9/StO0c1I+g7MTVzHyodb82fvP+fjZUxpToGIk2RFV1hQUJCQmV8RJIERBvVriqQlSsn7yhDvXk7ND6YKY4fLJJfGtRi/IgvbijJwCRZboeoXPimEcEGJe3pZkVJ6QyiMTTMOIHwamsYccMVkgs8INE3HcIVRJU1ZIU5C1wYgFeZI4YVBNiQueySaWbQXC4zxkFFW9wDrPMFlkLxlHx9Mnz7jYXLB98wo/zPkx3SxRqsBNs19VGolzmapeoSvJeVkjzby6dnPzCgEM/YkU5/xazplIRnlDzJLLJ09Zn52ji5KqaZHSMI4WJSCExOFwpB96YsrU7ZoUPFJkmmbB1cU5Y98xDh05CarVmiAkXYjEEDkcZ1FPkJLN1QXNasHo7BzqNQr7FoKQM9RFpjCGFBPeOlycQQvWeqbeM9rEOCROh4nH2z33Lx/QUbBualRRMPYnXIh0xw5SpngLG3POMwwj7aJlmGb0kvcTVVlRNy3rdUvfXzIMAyF4dCEo65rffP8DWSgQmlevblBKI2PkOFiadkE39OxPHVXTEFMkuISWkGPksN3OZrtSIwqF8/PnuEiCaXAklaiNolgosrAE77G5AAUXmzPC+A99Wewn0+zmtzpyIibPrz/7Jf/qz/87vv/+K7KC8fGBMcy3mhQ14+Q5HHsyBVVhWLdLpqHj9fffU5eJ9XrNn/zpL3j6/AX/01/+BZ/99V9z9/o7KqX553/4Hv/Rx8950hrqNM6m+cIwBUcqF+QM2XuKQjN50PUCc3GJcAofBOMYyWXL0J+QqkKblmEKdKOlas+JwbEfAuv1imW1QAhFSJ5x6ohhojCClCLJW3RmJnDYkewn3NDjnUNJiYiQXMS6jqLOHPue5fkFumw4DkfKdoN3DmkMkz3ig+fZ+TnWjuQpUFcVWlczKFNLEpLzy6eIoqUuCpzP7CIMQ49KHW27YRo9KUo2V9dkpclSY9TMXCs0nK1XDMcdksQ0TG9vdQXWO3LOVHVDvZhvjd0w4O/usePIMI5UVU1wlrpuiDGwWq4YhpHgHGeXG64uz8kpo6XETdOcYdSSvh+4fvIUZTSuTwxTREqP7gdOpxPtsKYoDVVlWK4ajocjSmqqoiDHyDg5vJslPykEQnR0xxPH3cDuMJBSSXeydNsD3W5Hjo521fLuR+8TlWScHNFZ9tsdkx2pl0tKLTGmYrvbUZiCdtGSU2J0Ezp6jJmJyev1HE7GCBKZzcUl/WixccD6gO1OM4h0mHjzsMXHQF3VvPfuu7z68YZSG5TIED0xZZIQ6KKgXawY7cRw6sg+c7k6pxCRnDqqWlOZDCGiK0PvhvmHKPvf8Rn/D6+fRrN7u1aUSdzdv+HP//y/58cfv0OXiqsP3qfvBn744hum0ZGzIsbMZB2XF+ecba7ZLM/oDjvu777j+acvePbsGf/8v/oXKKn4m3/7V9z/+ArjLH/08w/5Z//kUy4KC65DhhLrJSkU5DiP9Y0Q+GFAYzApEr0mhgwqI4ShP/QU7RnXzz9ge5pQRYWPGV3U1M0GXQlizggz43mit5Aj60XLNAiWTctwOs1YIyKlkOATBFiULbvxwGgDCkHfDdhh4nqxIKT5E84og/cjV0+e8+bmDVLKebFdSR5PR46Hnv1jR1k4FvWEMfO+5WZzidANSZRQ1FTrawrrkd6TY2Q49dggyKZCFw0UmpBBpvmW9HB3ixaQnZ33a1PGDz1Ka0JMVM2CmBKmNJz6Dl0UdMPA9uGBqe9ZFoYoJVIIisKQon9rJRP0pxOvX/9IVZY4O9JUJVpKYo4I4MnzF4z9QIyJtl0zTR1a6fkN0CaqqiCExHF3hJgI3uLGCTt6nA3Y0dF3AzF4Tqc9u8d7joc9kxN88PEfsN894IYekQdScAyngJv6OduYA6tlgx97Tn1Pt7dkpXEpM9qAlIaYwJSaHCNSZmI/k2CGYWC1XKLMPAhBKqzzjNaiTUndlsT41tebPTkkUszc397PoiKt0ULgbJh9H1XFFBOPj48A1EVJImOkQpHnae/o8H0iDqBWFYuNAnWkLv/hp4p/Es0uAvItn+s3X33Or3/1N1xeLVldtGwPj9y9vmPqetbLC47diNGGGATdsWNdt8Sy4Hjc4Z1HxEz3uOXm5fdsFhUi9JybyJ/9/FP+i3/6Cy4rjzt1SCTy7RsSeU7Wu2EkZEuhItM4sVickYsSUkJohWCOwyRhmJKhXC7mbQMh0MWCyEwZEd4inWM8HbH9gSwERVkRQ2bXWZz12NGyO+0QIZKso9B6lswYPe9JCsnF06eQ8yxnjoFu/0g6dqQsuLu/BSkwhUYqmOyETImmbpBXFbe3dwxjx+VmwbKs0Eah6wVDkERliLyVO2tNJOBFwmeIwXH75hZhNLquaZoWBdhuy2k6EZ0j+khSimmwRCRCFSAKiqqi70eKJChC4LA/cDockDEyJI8fR5K3xBjnFS6hyEIipOLx5g1VVWCkoGyKGWYqC5yfXavGKKqiZLPesI2B43ECY/nTdz5hc3nOZ5//ihQd0+BxQ48dJ8LkOGwP2H6iPx0JdgSVGLs9JE9TLXGHe3QcsH4AIqYoyVlw9+aGLObbqhQKIwXEWZNYr9Y8vbji9nHHMHnGaWL0Eqkl4zQRUya8DQ3rMtBIxWTHt6j2Gf0+TJaqbCirhsftFucmSIlVW9JojS483vdEZUAKpNLElN+6Zy1loSkLjVAKVMZaR8wOlxPjJDiNmXMHq3VDoSxpcL/TM/7bqJ9Es0MEMolxOHB/+5rFomaxmiMPahr46vELUsgEnzgde+62e0LMSAQPd69nisXZmv6059nVCz59/zkvv/o18fiKjTjw0ccX/NlH53ywzoQp4mWBKVtMZRBkdF0jtCJ3I94PmFKQlQahSIBRAh8FUz+QvKdqlzSbM3TVEkIkOI8pC6ZuoFCSUgSmbosftm8ZdwXjoBGqoKyX+DDhbaAqFqgSfrj/Fgkoqd6atiqSEsQYSWFmtlVFAUIQhKFerJlcIubI4dRBnv9GOM+iXXN2vSYrye7ujmEIPHu2pu86arPCRkV0Fu8dbbugrtfsjkeqZkUhNNZGtFZM00Q/Dpx2BzSJQnlwB7IPaFkRkbP/NCumkNk97inrhslZTDXSNg0yRlSMTMNANprTboshIIRE5IA2GlOUBD8RxwEXHeWypTCS775/SdMsiQHub2+4vjxjUYLJkur6HI+gbFv2+5H3Pn3Bk+eB9fk5x+0jP/zmG27efEb3+IDre4b9ieRGghtZbRrOlguSnYjJMzzesjDVLPj2mkW7nt/i+gOkyEIJTt1AtBNKKZKAQisuNhu0Lnlz/4jUmt3phBsjWcw3+xAjwUf2+yO2lGhjMMXcsLKUTMOEUiUxTHifmFygrgxFYTAyz5TkrOmHCec9WSiUmEG2TVXO5Bg7IKRiSAE/WmoBWQoOh4HDQtGfJupmHtRMY/zdnvHfQv00ml0+0Q89f/GX/4q//Nd/wWnssLeWqDMPd7ezADkoTqc3hAhKKbQWNHVJUZUMo6OkpGlW2MHhx57LhWTp7vmTS3iiC0z/mu33EbNYosuapAV9glxUtKtzrHfEeETmTLKOFAJdOqGW54hUYn0kC8Pl1ROqxZpIwtmO4D2uHxhOO9xbI1ayPb4/kP1A9OOcoysW1HVJpTTHyWFEQVPV7Pd7Pvzwj9g9PLB73FKYeSVoGk/zm5zI84BFSRZNgx0dJ3/ABoHQJS7A6dQjJdQtNEVNmCxnF9cc9x3ROQ7HkcFNNGfPqcqSjEQsVqQYUIXk+cXT+VYpFdvtnmGYWK5aGEeU0PhxIEaLyBFBRKvMOAVCFChjaLSZw7eJt+hxSbB+vgmn2a87T6AzUeSZrFtKYnD0+wNKSbQqUAIEif12S3KOu8Pr2ToWLEuVyCZgVKCpNVkYpPJ8+zd/y+vf/MCz9z8g2QRC8MEHPyfbxJfHHd20B5hzaSSaumVRa6bjHhcipmg4dSOkgBSR/faB6CxaJspS4+30VtotWDQNuizRpuCrL79ElxWb1ZJ33nsfi+CXv/o1k3XU2jAOFhlmuU83TEgVyNLiY8L6QMxw6npEUoQYUFK93ZNMCKUp6wIpS4LPnMKIYB7waAGF1lSlhiAZrSdEKE0BdiCNgSKB70bscWCqBWU1/zD+Q6+fRLP7m1/+b/zt3/6Kf/1v/ndevX5NEJHN+ZLTVyeGw4Gxn8ipIIRIu9pgqpqc51Wk/fFAmzW6XHK+3rAsDEudyMc7nj6r2Dxv8LevOfU9armE3BBJ6LKiaFpyVVM8eYYaJ9J4YNx3dJ2jrJcUzQLKliRbdBFRKqOVniGKwTE6h9GSZE+Mk4Wc2e9ml4OMHqMydWGQsiBEECHSbXfYU09K84RtGC1hnUEYEBrvIs4nDseB0/FAXZY0dY3IiXGY3adZGGzSrC+WIAzGOEL0mKpiGEfWzZoX773P3es77rY3OHuD0JnNdc/qco2NCWEMplmRRKRabljUJW4cWSxqrJ1QCmTOGClQWrPfHRFiwlnL0XcEtaZerPi7MHiMGG1IPkIIpBQZ+hN2HGd4Zoo4a1GFYlkvMEaxPDvjxx++I/jAetMCkmkY6LoemaFQcv7sHQW1uiD5E0Uh8JOl7wNluUJXz9gd9nSHHc36jN3xxAcffMC3X31FdzjSHU/4aaJQiro2NHWLknEGFiSoq4q6apFs6cXIdDrQHQLLZQ2FQgpBU9esNw27U8/kA+N4IriZJGKnCXLi7Pm7XF1ccDydyEgKVXDw82dnFGB9YLleQgiEPCHIeOtn7LwUGFOQgqXrOpbNBecXF5ASu+2Jqpzf9gQzWXvVNogcGadE9HH2bxSSqqh5WiSuVxmTLOOxx9aSbAc0xe/2kP8W6ifR7P7lv/xvubl55M2b18QEz54/5/xyw5s3PyKjoK2X7A8W6yJVjKw3Ky4uNmx3Dzzc7zBlwQfvv0PlesrUs1ElV09WtMahRjiNHm1KtDYIU1G0a+RiiWyXZG1IbsIethQy44IgFRtEe065viSZFVnW+DBCTkyDw1lL09TgHXby+KHHjwOlMaSxo1ASNw1kJckps1gURBfoD1tCgGnyWHciS8hZcnt3Q1XU1E1FfzoyRagXS4RQ5BSR0tD3HcNoKaREqEzWmnGYyAjGYUIbSWEKClVw3D3wq+2e7rhn6Hum7BEqcv/6R5pmwW5/4th1xBgxVYWUCpUit69/5P7uDlOUJGC/7/A24McRbw8sl+bv0E1aG0CglCIjcW5Axpk7R04Yo/HTgJ/6+X+RIhlJXZ/RLlZUpcFNI3XVcjzu8dbSti3dNDF2pxnppBQ2WNw4zFEK64hxFtnsdz1CdGR15GF/5PzFO6jtAqEMcTjj8HDD4XFH8J5Fu8SNI2dnFyyXa/bbe4Q0XF5c0A8j+90WkBhtaNsGrWZMlvcepOTs4posDO988DG/+uxzxDgyiZHCSEJM3L/5kW6yuJTZHeY4z+XlE7Q0HA4HlATlPZ/87Gfc3d/z8PBITBElFNKAVArvHS6D84H15pyf/8Ef8u9++UvKqkHpGu88MQZSSgzDMOO5QkJKQ4oRZKAygaeXJZfnETVIxmHEjjVGasj/6KD4e1Hd8cDNzWu22z1K17z7/H3KQvOq/46qKKnKmq7fka3ldOrRWvLe+y/wYY5KPHn6DMLItH/F8klNMXjqdo2PBicv4PxT1osKXVSU589QzRKamqwlwfbY/Rum/ZbJD+RizeryI3JZ49VsuQ+DZfIjlTHkmBApE0YH3uOnieQjpTToLFAxkXNmWbeMk8U5j8gToOkOx1k6M0xI7VFFQd2eM9qBEDOn05EcPUka6rqkXbQ8PjyAnJHmznliDtjgWKxL8jCSyFRmBlIeHrc8efYcXZfcvL5lUWjM9RkpzOTd4+Md3wWPi/PNdtG0/PDyew73t6jk8WOPKQzL66fYmKgqjbcOpSSqbijLgskFsihAgvMTpVScnW/wwXHsTozjQFUUTG8/4ZtSUenyLRBAouWMI7LDib7vECLPWCM3sX0cSXGOn1hnQUlqo5ic41effYHS88R+uVrRjwqpJKTTLKB+/YqLJ8/wzvN5f2L36hUpZ85WG3a7PTknrA10p4HbNw+UpeHN3Q5rJ07HmXasleb84nLeuoiemCPucMRng0+C7aHnuN/PMiGtqQtDZo7lCJE4Hg/YocenjqquKMuGJDMxJqQQfPnFF2hjaOoKBKiVJDrP6Tib1RaLBdM4ELPk+x9vSWiyKhiHnhhmeU9ZGnxKhMSsggwBJUARaCu4uob1JqLKgv2bwMNDTwoFRf7Haezfi7q9veP2zR1Dn4DM//IX/4am1CgCqkjoStAuV6gycTjs8M7hrCMLgSo0kNAisGo1f/rzF7yoHSFF6vMPQH6IeTFB98B43CKjwVkoKonrR7An5LCjsgeCKWmv38VcfcIYE6fTIwsh0SK8hYFGcojUpiRYh+snvPOsVyu0BDcOmMWaoTtxGgd0Mctd+tEjckApzWJhsNYSQ0IqgZIFUka6ziEpyDGjy9mclWZW8xzlUJKcM6dhRKhibkBKUBWGGCxSSBpTsH3zht1hDwgKXSJS5sWzp/RvA65Dt2O0DmEKoh+RwfHy65c0haQ0kqqqiGfntO2aYRppmgrKCqNbpMoIlWcSC4myLPDecnPzI87NaKqyUEgxI4mEkWiVyVIQcqaq9ExrkRbHRFEkTFEyTorz8xV9N7B/PECWlMZQlwVKgTCK66fvcOwmXr6+JY4lQpf4YJF+YLE8J0vN7v5AU1Z0/ZE8eQY3MY1z09TacDyeOO13BB9wPqCUwvvA5CNFoTBqhmQWRcVke3wM9JMjbXfYKHDTLW3b8MnHH/P6zWvsNFJUBevVkmEM1IUipIrjZLl7uKVqWmLKWDuv7oW3U3VjDO1qycXFOd3pQFkWuMkzjhMpJj7/4hu2uwOFUfNwJGSmcc4ophTniXdRUBqDCw4jE2TPalGz3iTKhafQmt2dZH8YEVnQ6sXv9Iz/Nuon0eyGQRBcOct/hWQaeoKFpmlICdZm9plGH2fDfF1z++Y12/5Eoxv0wiL8nj/4cMHzpQV7ojArlpsz1Ood3BTIyx2q+J5dt8PYHhWPCHvCdnui96SU0BdLdFXj+weGzkHKqKoFqSiLRLCOYfQ4GakKQ7loqBqBwhD9hBvc7CjF0PUdMWomN9urlJIkIQnBszpbUxZPuL/f8fLb1yjTcHZ+xThODEHQH0cWbYNWec6xjZmcwUaIukTpGe+jlcTbCe8mpmluvKYo0KiZkiFASMP+1OODJ9gB2/c4a0lC4qzlz37xn/Lw4p5vv/wVmplPd/f6ho9+ds75YoUrEz4mgpsRSloKdKlwYSLGEZkVD9s9x25gdbbiyfUVvrdIGRnThJs6lIiIFCAJmlazv/+eUmvsaeCYNYOHx+2RZC3BOqqipmkbyrpgf9zh7DTfemVNEgZkSVlo/OQIUXB+dUazaPnxxzt+fPVAcCPrdYMqNZP1NKYlx0S9KLGjQ8mEC54YJDFEckyQxPw5nhymlFgnZkZgjgQ7kXOirWuury5ZbNYsnOX+u++Qg2ez0giTubw8R/UTavScxolgLVprTAXO9XjnSWNCIFguGy7ON1SFYpsPjNlipKY0BXePtxxPe6pyvkFfXl/w5s0dPmWU0oisEbNqFmM02Q6sK8N7V0sW5UShSkgjWkQa1dLvFeM/rov9/aj33v85d7cOUiBGS87zFC+EDMIRJsHmbI3LA90U8MFiDz0pOKQOrFLFP/35c37xYUudtozdI1Pcsc9QXh2gnjWLy7M1i6pleLxn9/JHFmVApIlp6ijbBUqV9A/32PiIMDWFqpm64+wkXcycf6MkyTlCjizahmmccHZEpoB3Ezk4SIkQPdvbe1S54KOPPmK329J3I85ZfPAsl3N2qus6JnfC+YhUGqUUVdVQVTXj2FPXDc5FpskRkyJmWFQLDofTTL9QCm/t/DZUappFi7WzJ2FzdkEK87J7yIGpH5ApQ8ogZn/qF1/8mvW65eJyTbIjw2RJceK4f8C7iI15RqlrTaET/TTiXEbKxOs3t+z3E5PLJCGJOfDJJx+z7R/Ib4XYL1684JuvPsfZiUWoaEoBfsJNERUyWir8aPnxYY9CEl2g1B6pND4FhNbYaeTm9UuK9px+7EAqUqpIWTJOlu12S1GU7Lc7fADrPWLoaOqCsixQ2mCnCakLdocjdaURErSQb4XTed5MWK8xRvJw9watFVIoMhVCa5IQpAjWDnz51Reszi9ASqZx5HA4UbSaZ9fXLM6u6F3k8y+/ZlGX1FWFw9OdTnTegRIYXRDtxKvvvuPYHQkuokVJXdVM08DV1QVdf2ISiaZesD7fcOx7Tqce7z1CzJ/cUklW6yV5MgjRU1eGWlhMAp8izULj9IJuKvgJJE9+Gs3u8uoFz190/O1f/4roLUrFWQQcLFXlSR6myZKFpF4usdGjY2IjDb//fMV/+U+e8J98vGYjToSuI3U7UoAuZ3rXsbp8RqE1h/2WurxAZ0t2ltE7dCExRUu7PAc1E0mySGiV0GbOSiWZqXRJ2ZZ0jx3OT3THkfGgADGTTILF2R5nR7RWKCNo2oaYDKdjh3eBcZxQara6zwKYnqIqQSaGoWdylrPNhrqpsN4ilGKcAuMUmMaA1BU6JkiKyU0YBUJJpmmYUUYh48YBOzmsCxglAcnl9TXrswu+3m2RQqIQbDZrstLc3d/x43ffsG4L3n3xFK0Vu27g9vZ76nLDy5t7kpCcbxoWpcRHT7FYEb2HmFFSUBiFLiuSyHz261+Dz1xfX3DqR8ZxwAWISRMC9MceosOOIylLvMgYWSDFfBvVpiIxQ7+WdYMqJNl2TC5StSVFvcCGObx76nuUj9zf3fHw8IBSDZvVin4EpSOkBFISQsDFxFffvURJhUZTqzn4a6oSIxST94T9kfVyCWhUAWWpkaVAyIKud6TsKEvDsyfXfPSzT7Fjx3F/RCLZjye++PIrmuUGdMGnn3zE5uwMozVfffkZq8tLHnLGu8D11RWbzdl8W/UTwXpiduToeP70ksV6ydff/obd4cgw7vj0Z7/P+eUl/TCitCaLiEt+zjzmOY5y7DoGt6bUCSMDssqIywZhrlizYttNv8sj/lupn0Szm8bAfnecjVBGsGqXTMOItZaqKemnSJ9HYrnAlCUFniWCd9ol//Uvfs4vPippwx3ZnhiHniQbLp6/S16tGfzI/tVnNGSmY8dJzxZ3kTU5F8S4wHnJ6WhYLDNlLUjBMo0DShd4n94ilA64vieMEzKDHyaGlAlpzv1JEpVRCCnohoF2uUSYEjvBmzd3dF1HXdWcnV2x3+3ZHU4kBEVZIhWsVisetlsOxx3dqGmXK55cP+Vw7GiXBqU9p64jhoxzibKoUCIhlaRZ1EDEx4gxmmkccdOAL0sygv3jHW7sISbs2y2Ai/MzumGglIqkS3KANzf3mMJAgnEaIWi0klifuHtzRyECRV3w4eU13mbapiZFxWDjPBEUed42EZLD4UDOgnG0rDaXswBnt2V76lg0c4i3KBty1vQnS1O3cw6uqjns91yen9E0Bd6PnLcVddvSOzA+YwtBf+yoC0nTbnBuJKXIOCamaUQrgdGKtqpwCQYbKaqayLyXbFNiVRZYdyLmxDRapKmww0R3HLjYLAlppD/uKYqSHDI+Jrz3HE87Rtdzf39DsBZB4ur6ipW45HG359D1CDUBidNpP6+1nU5EJamkQuBptMIPHVN3ItgREROCyDRYupNGKIEUM7k4psC/+/WvMaZgcg4ySCR1qXFuZNG0ZBdIyWPtgKgMohTUbUnhFIfDkeV6gy6r3/Ux/w+un0SzO1sviW5CyYRWgmcvLrm/faB703HyFUoVqFywKFt8f+S8kVxowR89WfOzqxVrbbHHnuQnlC5ZXF2gLj5ErjYUoSMdH8n7W5ZCIOoGUy2IXuG8IIlE3Va4NOBdgRQCO5yYrEXpEqkKpNB0x0eSsxRC4u28AA8KrQqKosIo6I97QtYo07DdDwiRiEERE0hVoE31lmILCI21lqurJ0yj5XA4IQQsFjUhg3OBu7sdRVkzWos0Je1Kk3zAuxmZVJeaummpqmL+vEkBHzxlWWJMMSOKnMONA9HZWdhDJinJzc1rpBL87OOP+PqrbxBvXa77rkNog9Yl4zDQVDPO/PB4hx/3COC9D95nd3fL9uHIcrFgsdC4mEBCN87OC7KgMAajFAKFMQ2rtWJ3kNTnlzTtAq1LEIbLKTF1O077R9rlCh883/zwHe++8wwlEkIICqOx3lOIhARak5kmz/n6Kf0g56mkzKQsWW8ato9vGIeRatGy2SzQVc3h1JGz4PtvvyZMBU+uLhi6E1LOnuF2ueH29h7nI1g5c+cAACAASURBVFkqXJR4G9msVoy2IwuoqmIeEuy3szDHzZy9dnPBBx9+zOeffcbkHcoUXD99xg8vX85C7ZioygI3TZyOR4QAOw4k7yhMMefssuDx8YHt4cDoAjFmko/sHrdzhjHN77+6rBmGkaaUaBJaZi42Cz54cYWoe8qVpGAijR4/ek43X5DCP1JP/n5UmJjGPVWRubpecv10zbF7JMrAYOc1mqUpuNAarTJ/fFbzooE/fq9hHY7ISRCmOVpgCkPTZoTyoA1KNpxvzpnGx3lh3Gww7SVTH3DDiaQERQ7oQuBdIIWEHSa8tTgRUCZTNYbh2HHcPvJ7P/uUg4901qOXC3TVgjRM00SSDULOWGyQIAyjnwBBUTeYesGxm3Hva3PJDy9fYm3Eh0RVN5xOB5SWVEVFzoq23eBCoqwWLNoFD48PlE2NKQ3OCrSC7eGIVoA2LKsWEHP4VAjc5GbNYIqEGDieTpRVQ1GVmNIw2ZH72++RTKSckVKwXDXEOAthpVRM1uKjmOkcxlAozddffIZGUhaGs8U5Zb3C58QwjYiHTIphNrll8TYELTkeunmCWNe8/9HHmKrk1as3LKqSHD3t9ROaVQvKUJ5fcXd/hytKysKwqq5xKVCtBK+//Y4U53dHwexX/cUv/ozffPcth8PA5eUTqlph7ZHD/YHReopFg/bz/6IoKlarDcfTgbqZIERyChy3W6INXJ2tUUXJm/sHBisoSsP+2OP9REiBrh+olETESI5zqPjr3/wG9A1/8Pu/zztPn/LNb76eqSeLmt/79BM+//WXxBAY+tlv2w/D37EbtdbknOanCGWQat6b1abG2QliptAFTdUwTuP84yU8pTEYkRgPO15sFjzbNBSxY73Y0DaeUgmyzhQRdLCMff87POC/nfpJNLu//B//B8Z+z2Zd8eKdS4TyHPtHfBoxNMgk2ZSGj85a3n1S8aeXBYuw5aPWkY93PD5OhDSRhWe9bIjDDZ09UkqBQRHHHhsd0Se64Q3ieEKwRIglRrcUakFKER9HvLOQBZv1GafTRGFqcpSzyLqoeLi9Z/QeJ0tUhOvNBcklpinik2OcEjlI+lOgXs6rRTNjzeP8kaKoGSePPXY4GxmH7VspeEYpRQiBpiopywUxgbWBsioJMbA77KjKCkhsVi3eDghh2O63s4LRGJSUeOdZLlqEjOjCzNjwtze+1WZD0y5wfkR4kNJxfm44dD1FWc+7m1kSQiLEDGjsaDnt97T1TPfdPjxQKo3SFdF7dCtpmpaUE+vViugnYgwIBEM/EpwnhowkI7Lj1cvvqNsFx/2O7e0tRijq1Rkf/v4foquGcrHkY+/p+56mqlhWBTJHvvv6K/TdkanvGJ1FCoWzjs8//xzvHdPkGIYOrWe1ZF03jM6RUuT68hytJFeX17z88YZCF3TdicZktJA0i5LKaJqqYNcPOJ8ZBjgcT1xfL9FG8sFHnxLsxGn7QH/qmZynbNdoVXA8Wf763/4VV5drysIQ7cT9mxtczFjvWa/XPG63aCWpm5q6rmfhdZjDwuM40Q8DVbuhLVvGwWKURgsJGcauJ6YAKc3hap+oa40RsCgU502JP+3obzN6Ssh2QqQJqRJVm5A6//8fwn8A9ZNodlVZIArB+bOWuuiRw4kyZRQVJYqFKXhSGv7jp+d80ipW8YRVLWpxxen2G8LxhkqDrJYcbiyUCrXKGLujWC7Z54TSDaLvyG4iFYmyaRmtRSRJTI6YPJFAVdVkCo6ngB0j3nWkGMlTQmdDdJn+OFAtCtzdgVePnyEkrNdrbt+8IcVMXTU4NxH2gaou8X2PnRw+JurFisVqw939TMINPhDCSFFpmuUFIRUU7TnTOGOCUowcu47JTkQPsqqompLl2Qpna+5uXhEjSFWBaekGyzgEDl2HcwMQWJYFOktktUYtrrn+8GMOh0eOL7/FCseiNoSTR3jFODhSTsScOfURbSpOxyOn7khRbJBeoL2mKAxZZoR29NMjkz8xHgcabXAx41OEnCl1ZrNa8urVLbEfCcmSfKBuanIGnTNaG077PduHHU/fXVGUDYuzhgsJ2syyIiXhk3bFerXmi7/6v8EOmKZksVhx6Hpe3T8yuYiqF+xPHdMIPjpQCu8FOUimU88Pu88Yhh6X59hJFwVazDm8ZMD5garQtMuKwzCQZaKsStZty/54YpgcRbHCmYQ0icWypVnUbJqJ/eFEdzwSlyuunj3FhcjoHKqoWG4uKOtHjJ6zhufn52w2S+63D9y8uccnidAVp9PsnijLmkLJv9saSXleVZRijsmUusTGjNSCH+4e2QjN87Lm9be3yBctS9MweY+zDiMCKtvf9TH/D66fRLMrazi/bHnn/edctQXH+y0hGApdsKhW/OFH7/Kf/957/MnTNc3pjnF/QqhMSpmx68n9vC51/+olP953rJ9c8ckf/ww5REI8UGnFCEQySTbEbCA6pjCRQ8dCN0gBlQKTBZPzxCkQRsvkHCEkVLFknOaF++AD0ziAqonWY+qS0/GE0Wbm2Alw3mEkFFVL4QqUUnTDSMoea3uqumDVnjENA9OkQMX53U0VeGd53M7MMu88Qii608j1kye8ePYOj/sHfnx1Q1moeckchS5KfJbIoqGk4vL8nLvbV+z396RKYsqK3jr2r27oXEKKTM4apUu++eY7SFAXGpjfjra7HSEZamAYHN4LHrYjxnjaFdhBcvn0ihgh4/GDJQ4TysyHOZFJJLTKNLVmuSgYxxEE2KFjOB0oypKyLBE5EVLk//k//w/ar77k9/7kT3n3o09QVYG1E02znjlww8jL77/n8f6e6AMmF3M0JyTqskbKQKk1Xd/x5PKSm9tXHI49MUt++OEli9qQRcAsW0IU9P1IypmcIm5yNEXBNE2ElLBTQknQVUmKEUHFze0bJhvQUgOZuiqwzlNVFddPLmeYRJ//X/bepNfWND3Tut72a1ezu9NEH5GdEzttZ2FcKlEgSjVhDBOYMENC4p8gITEG/gUCBqiMq1wlXBi77LQzMjIjI+L0Z7er/7q3ZfCdgh9QKWU6lM9k62ivI629td9nfe/z3Pd1s9lsObt8xPJ8ze71ayYXefnqFdpYzs7WjEPPw3aHi57v/eAH6KLh85/9kuA9fT+xPq9ZrhaIDIfjkeADwzCQckQqRWE0MkNZFCiZkVTc7fe8VBPf+7CiqC7ICEKcOByP2JRo1W+9sb8RFUTP46drPv34A1ZFwd3ze4zLfHp2xn/0D/+Yf/Lvf58nHGn3b7l/8xXdcOT9732X+9evePPsFUsV2fU9p5NHBsX+7Ylfhmd89Flgddly6ncMg8eYBicahLQzoaMAcmTRGKKfpQpjd+S46+n2HUM3IN/NrpwKszYtJYSybG83nF0+pR89jTK4acR7P1t+xoHVagFKM06z+tOWJbmfWW5SZJSS7A97ok8MowMRQAZ86Dj0E8vliozk408+4ZtvXrBeX6BlwddfP6MbjiQ82kqkKcgxIcua680eoqQ79mx3J/zUz8lsY+Dq4gxJQCVDTnMKGDmxGUakaIhpPtCT93MurC7IUyYliEHgAkwxkqfMcTqinq6RJ8/T9y7oTnvyOMz4Ju/JKJrSUjcV17c3uOlEWYo5VjBrjseRuipIOeLdgCBiVIF0R26eb3i4v+WzN6/47Ps/YH1+MWPt+xN//i//jNc//xw19EiZebh/4O31PcYUSKnI08Tm+g2kwIFA3dT0w4QRGmMUl1eXeDew3zwgY0IKSYwJUAyjQ4mBqtFMbiAGqAtL3S4IbuThfofImrZuSDHinOd0GqnrmskHQk5IrQg5EVPm889/xuP3niKkxFpD0yxo6nYOdT8/x2hFJvCXf/23PH3vA37nh7/L3/30C2wFRdUQUiTHwPpsxWF/mO1lSs25vTkhpSSniJCSrCyiOiOUiikKvvrqluOF5OPvvkdTX3D9zdf0029Jxb8R9cH3vsPZcoUCfvaTn7J5+ZLvr0t+//sf8eMPCp72L9EPL6jjgOm3VLakqSp2d9fEwbEbenCBqmyJLhKmzP71Az+/O9CuFwwpMiQ4f/SU9aNH5JBoGkHXbxi6ju3NgHcJsiSGzNB5Dtsjx/2RHBOmsKh6dllYW2AKgY+Kzf1IP01s9z3r9ZLJjRhtyDmitCQkGIaA93EWE3uNQXE6TvjkGcZAVa5wQdC0DWVZ4KbEo8dP6YaRkGB0E8v1mlW7ZvuwpTt1ZJFpmgap4ez8jJvbWxKSJ08+4PbmntEdubxccfnoMX1/QOSJzWkkC4tQmq6b8e8pOCRxng1Jzf50IpMp6oqiLsl4ysqyWDUMYaKbJoTSCKG42fcUF1f87j/6x/zJ//6/sLu/4731gtrodzY2jdUSowXWSFKpmaaMGzxlMdvdEJIYA9N4YlHDRWPRynEcT3z1+d8ynI5UzYK2WXHsDrz85peoHGYiixC4wRFCprQlq+USi2C3faCuS1LyuCnN+CitcdPI69evMUaxPr/guD9ipUJlCDGRpolJQnZzDKTRmrpc0i5XHPZ7xmH2p2o9h3+fTh1CQD/6OUIxeXycA661nrFchbHUTc360RM+/uQzvv76GdpoDocDLgT6oUMozfE0MLmIKSv8oWN/OBDDxEcfvP8ubHwODEopI8T8tS4sRmS6fmDMkYWpeXuIrGVGN7C73VGIwOMnj1BOMBx+q7P7jShlGq7f3rO7vmP7+hZ9PPHjH3zGx01AXP+Uh5dH1OaG3odZDlCt2L2+Jh6OKA8kjdIGKTSFzqzqkv2hp9t0DEfwwhJ1wfWrl1SLPat1i1SBcTqy2W5BGlKWTEMkZUnwmXHws/E+RoQYKQqHNgYlB4Q+YcsKVXqqpkKoRKEdy+WC7tRh37HaclJMJ0fX+3cIJ4WtG2KaWW9t26JVixAFRSHo+wPTMBFjIkuFLituH+45W13y9votJMHkJ1LyaMWsL/MBoxR+CpiVoSxqVqtMlppDP+F9om0WRGG5v9tgzZxPQc5oM2c1JD8hhMAUmpQzPgZcDCATk+9ZrhrGOCH7kfX5OaeuZ4qR4zDy7MUrnnz8KZv7W4aYSHGgqWqCd6TCcH5+wTh5jFG0C0PdSs7WK4b+xMP9DeSErUpSmDDKYCXUVhFy5MUvvmAc/Xx1qwuuHp0R+0g4zu+3LA1jP0H0hHFm0q1XS4q6oG4bji4QY6QsK6bJzRRhUfI7v/cj/vIv/4K2afjd3/8xMYO1Bc5NvPzlz3j74hnZpdmdsXtFURZkoWZvsBCEEKnqhiwSIUZG5ziOoLV5J/w1XF5e0jQVy1WLJLB9uGG5aBgnyzCObHZbYgqEybPdnZDCsNtugVkC5J2nHyYWiwXDNOvrUgapNGhFyLwjyYCLcHKC8+Wa43igygFtJgYb2XmP8nF+0d/z+lY0u7ffvObh7TW7+wPTJFGT4PNX95zVhsUiMZ565HEkToHsE/7k+eX9Hdpq3DjRnwaapiTmhNKSbv+A6yLeG9p6gZaGwfVUacBtRg7dka4fCUkwRsGUIj4FcI6cJeMUCRGSELg42576bkKpgFISU1iSHFldnCGQHI5btncPNG3B06cXFKrE+eFdoPTsY0TXaKu5uX1LjI5q0WJSiV3UWFGx298y9QMyZ6bxSNaK3A1EqXnz9g0KhR8dqIxVmmnocOPwDvmkGCZHjoLJJS7OLuYw6uMJbSXHMdCfJvoxAhHvDlSFJuc5wUqJd3h6JEobtNYcdjtEzKRx4qOPnzBOgcKWM5ZcawgOEzPjsWe9uqCqltzevuWsnikdzaLFp0Q/edrFGc2iZn21oG7XSJH48mc/mQ0OgFWCEOdtdFkowhiRQpC1whQZYzVjGOiOCZMTdVMgAFMZfFEQfMQNHWVR0U0jylqKtuGw2dO0LSkEPvjgPYqq5vrugX/2J/8nMkd0WfPFz37OBx99wqeffR/nHLdv3uKSZvATV1fnLBF88+IZCIHVGuEdQgiUVkitiTnOYUAh48eILRuqqmS5bKkrQ1vb+e+oP9ENjt2xx8fEhx98wP3mju12y8XZGXd3D2gh3gmKwaXEq9dvUfIWrTVlWb+j10SmlBmFpxQzTQWp2XcT29JSyUyhLIuioh8HFjXkAPJb0Cr+/v8EwPOf/5IcEiFqJkrQNV/vJtRXN+zPFIsceCyXyNxTphE1jYjkcW4Wrwokk4voUqOtIDngXVDMm7dvUIVmtTKU1cj+GHCnkTxJuj7jsAwpk7WkjjN1xTJDErNSGKsw1jINAa0kUgpiCCSZ2e/v2W0zfgqkHKhqBdkTwxmZgMyBqpxj70bnCdkR06yxOhz3NE3JMG4xtmC7OeD6PatFjQ+B0rRkY9nvD4BkWbf0w5GqqYh++v+ItcTIqetQ2tAfj/S9Y/OwIylNlpl6WaN1gbENT5+uGE57uuOO6AbKUjN6h8yzLK6uFlxdXFG2Cx52A4fDjpQibspIDEbCxcUFtzc3CBHYXV/zt//3X1LWFTlEooe3bx+Q2nGFRNqKmCS2bLm4fErZrqnaNc+//pKud7z/0Sfk0HH3+gVCztq+qirIMrI79HT7IxmwqqEpDYXVKJGptEEKyWkYqBY1wUWGweHChLGGQ9fxoz/6B5T1HVYbvvn6a7xzCG1IObPfH/ng6gKhDNvbW169eM3f/NVf45xnGnr8NBJj5O7+gZASUhv6scdPE0pIUp5HG48uH1FWlhAdx1MghkhKkYuLc+q6pK4MkMghcjgN3Nxu2OyPCG24u7/DB0dM/z+leLFoyDkhBGg9z3u1MVxcXGKsZbfbczrN1kNPpK4LHl9ectgf8cOJN7cPnNKIFRXvna+ZUub64UQJxCH8Gk/4r6a+Fc2u6xxZG6TWVCkiQiKpgi9Pii93jnUMfG9R8P2zmiu15xE9VZIkW0CYcW+7ccKgMcLjRUAvLAs0jbRoY0Ek/KSwhURqyzAFYkwolalkYLVa4LqAd4GynBNCQ46Ui5pq0bI9dJjsMQJOUyYpjZ+GmZjhNCELRu95/ou3bK73tE1NWSmaxbyZNFqQ40hTaBbrNQ/HCRen2Ub1sCFNA42RrCrJ0AtEyvgAha3RRmONpG00koDWsyujLFraxYKw25FixMpM0oFpd8Qn5ivzMSGNR2RJ1opwPGBzxjlHvV6Rioq+6wnDSBQTu7t7Nt98g4sBbTU5KT7/4ucsFgtijBxPrzgcDqzO1sjkyMOOrrsjZ0mShsksOA5HutuRTb9juVwQ9ZYuJS6IdC9fc/3Lr7i8uuL8s6eM445nX/+CQkmCyJACAkVdGabJcup6wuSYTiNWnOMVHBScXTxGJkvyPejM8mKJsgXD6Dmeev7Vn/5LyqqBnBi6jsPhQLVY8o//k3/CX1Q1v/zZz4lupDAaay2xCzMfIQY08xOW0RB9YNHWszDbO5QWtHXFcr1gtSrRxpKpWJ/pOQeEhLWGoq5RxuJi5Jdffslut0Mbw2JR4WNinEaCc4Tk6XImBFi0S6ZpQklBiIGUM64fuL25xrQNdVMT9gGdJpq2oWnruVmqRFRi/v1nwctT4FG/YJkbygitGCli+nUf83/n+lY0u5Ag+IgQnoWpESSUNQQFx6zYngYe+pGxvOI7yzOefvp9ynDEuz1imqiFoQ4wOYcPCVMWtGWNLRcIXc4zleMeLcCIjPAeJUfqSoCARKZSDmMEg0+IHIlZQPCokJCT43FtmE4HcpxYlyWyKHFTRX+cPbJKSQKR7D1T1+P6DpQiIqjbBlOV1MsWVSjKoCjKBWftisJWaJV5uD6ihOCwOyLNLD9xIbE4vwQhyMGhbU3wgUePrnjx/DnWap48eY/vfPZdXnzzNaf7GxICJwRGgEqRRhuGcSBl2PYD1mgKaymswY0eW1vKqmQ8dgxDTyYjYkCmRKXn+VL0juAnqrrhcDwgleDq6pIURlKY0VLjNOJD5rg/4FPmOM0w0fXFOYMP7PqR52/uOW1PyNGRK81FEoxj5P0PPsUddxyHnmns8RFcmJvNatkQAzR1y/F4wkePVIa2PaM7ntAyEmNkWTSkKBAI6rJECc1mt0crwXq1xBjDaZj4q3/9Fwxdx3rVMnYw9h2F1VgjWDYLnIv4mDBWc3l5wWa3Y7c7UBYVUSvqpuDiYk3TVjRti9bzvDijISfqqqTve4TW+ARv3txw/bChKCyr8/N5u/+uoUU/IpWZxwgyz/8mYo3GmpJD6jBWMoQJN4BzE6vlEjJ0pyOn4wm1aBAiU1YWaxQyBaIYeXFzz+MyszKSomoJbv/rPub/zvXtaHbMTaEqSuqqQcZElpkpOpyG0Vq6CG438YuHPZ/8wR/woycl49u/JRzvMDJSqhrnKlw/0zmkzoSkyAKatqRomdFQfWAcA3U9C2i9iwgkdQUTir3LnMYOKTWNLVgVc8Si9yeWVUTXiVxA1pJRWuQUUSESZcYjUVbNqe0iM0VN10UeNlvQknJxYnWxIomSi8dPZzHt8YGYepQOTP1EbUoi0A09E5r9FGYA5DCTki8urnh9vSFmhfeZu9sHtmrDNIxYJYkCamtmOUTwTN2eafIIJDkERjchAW0t0+iwtcVYTbNocV2Pd9M7GnPE2gpRlO/CcsCNPZfnazabDbc313z84dNZ6Fyb2RaWwY8dumzRxuJj4uLxUzb7I89e3/H0ww8xTUvMPV+/eM3WD3znkw/oxkxdrTmrVxyOJ1xMVMoilWGYPMftCeccUhrKwhJT4puvvkIISfi3mHL1gFGaws6vMcZgtaIoLBfn59RVzYsXr3h48xYExDCyXi3oFBSFpSgtH3/0lK9fvuV8/YiqKri7uyN4T2EtSmiENJydr1idLSnKedOqtZnjEaVh0bSQI1qZueFvdrx4/oqQBSJCyBIt4HQ80tYF56sFIUq6U0cpJUZBEjPFuW4alqUia8FpEmzHkUyJlAKFRqKYhpFDjpRGEvzIpOCDp4+4rFt0d0tSiSChjxkRf6uz+42okMFYy6Jd0pQNOoPPM3LdSMGdPzFMmVAveXG746+v93z64WN00ZCGe6QOJDmBqWlWF5QqQ/ZkP18PpFI0C8s09RR1JG+32CLRNJIwJrJPyDzM1wc7ywhQgnZhKbUn9z3aCupSsDiroW6JquXhtqfHU5mA0JIgQBUSWxpyzmin6Ui0RUVWikWz5Ic/+CFnl2d8+fXXLNctxkKQgRgd/TCwrFeMOdIuFqyqljHB7f2WsmqoywpbtjxsXpNjmJvL9d3M0yPy+GKBERKRZsax0QafIv00IJKgrmpSTIzjBH42sFeL+SrUtC2LuuGw25Fywgo1X7NCQAtByjPNRJNoS8tmd+Dli8DF+RKjBSnMtqzLsxXK1nSjw/nMzc093RTYbnuiuKZuC9qiwmfJftvxdXiFP84BNqYoSETKuuLf+90f8ezFa5T0rGTN7fU1k3eUukSIeYGBSEitOTu/JL/zywY3suu28xZ2sSAFz8PDA0dzZL/bUkiLMoaynBcxg+zxPiLlxJtXL9g8bHg47Ah+YtEumEaPFBotDWcX5yzXNU1bYwo7OxuEIifQWtL3PWVhqesGoS3HbkIIzeQco0+4t7e0dUkKkfu7e8iJnO27qEyDsYqsBBSa7rRjWdRURUlTV6TDiYfjyCkKop/pMjklos+4DDFODKNjcx95/9MnnJ01cNpginKOKtW/xbL/ZpTI5Dyv3Ieup7YFKEVTL7Baor3m9c2G4D1jFPyv/+L/ob+74z/7h5+yvDCotCWngNY1Zb1EhDAPkwuN1SWTG0nMwcxhHFCFJIwHhJ/oNiPuGEiTxAhJWURyqTB1SVkIQn/CqG5GaTeGZmFRbYkqa0QKiCkjkyCQCUKiSwtCkpEoGRnMiE8CYUt+57P3+eTpOd144uMnC4RSxJyQRUn9wUc82A111VAqzRQjY/Azvp1ZzX9xec6L569RUjCOAUEmqjjnsEpJn+DUDQyjY5gchdSYoqQ5s0yDRxhLdo5xGBEykAXcXN+yWC6Y+glSZtEuON3ezsHccgIE5ERhLUZCHHpMTlgpmbqRsa7Ri4rH7z1h+3CPkBOPHj3m9c0NLg3z9nCcIGZkzCghaRYLcgaRBdMY0GXLqZ8Dtc/Pl2hh+Pkvv+H581cMg0NLSVUU7E4Dl0XJOIzEMCJkJghFTomz1SVGGfrTkWAMp9OB6AOXTx6zO2w5HI+40bOol5S54ur9JyhjeXP7MKd7FZJxcpRWM/oRmSMizxrAaQw8ffIBTVvTtg3WGuYl6AxbRSl0YRiHgXEMTNNEvVyTcqKua2RVg9Tc3NwyDo7aKvCZse8pCiiNJoWJaUi4FHB53kxP3qFmvQmLquDUO4QAW9j5rIwjTd3StjUxzTNAmXt2D3eszwwX6waSA5nI8bcLit+IMkahtURLxeOLR1yuznl2/ZpjN7AZB9zokCKSSYxZ8PXdie3uC45T4D//j3/EVbFExQEtBTFJhtERomJ9dslqdUbfd3Mos8ok35P8iTAqwmmHjI796Ik+IW0mFzN0s1i0WKXxR882eJpasloY6koiK0G1EMgp0mTNNAUiMxduDIKQJEJocjhx0QyEbMAYTg/PePbFA6qQFFVJloayPmN/dMQscC6w9RtW60dcXVyxPR1xhz2XZ0uQinE4cbZqGceBU3AIafBxjgNEK6pmzeEwUdaW/fEWaWCxaim05clH57x89own7z/hsNvSnY70Y49IAqMKkkycTkd86kha48aBuiopiwKZM2EckOmdXitGNBJhNEoVaNNy7D3C1IzHgWHsWa/X9CEzxhEpZhHsoix5/8ljTFmzuXugUJrDMHK7vSMlWLYNUgra2rJsW/aVRfmAEwphC8aQ2J962rrAFgJtJN7PesjTcU9dLZFKs1itmNxIYWYZDEK8czdMbA5baufZ9xPSFkweYvJUdY1CcL5aUlaWcZrQxiDJ7EWP0swpYVKSUwIExpbYoiRnSZZQ1wUxBMbRcXPzlr4fKKsClRVvbu4JEVxMWG15r8LnQgAAIABJREFUfPUed9ev51lv8FhtIYP3mcMwoAuDF6BLgdKZumqpiom+DyxXLXW94v5ulp547+cn86uaUmX0+MDN5pqPf/87LCoJbo/wv0U8/UZUaRVKauqi4PHjx1hpmKbAm+t77rdbcgjUTcWyrpCmwMvIrcv8b//mG04u8A8+OuPj84arRnHZGkw544fOHz+lrBpkvYDkyWHEjQKhE0URcEzYlAmdh0KTo8Ss1ojFYpad5MzO7zlbS6wOGOspa4FtNdZ6enUk2w5jFLIsyLZkCoppEnTHkVI7qmUmC0nWks7vuXv9gK1KTGG5fPQ+U+iopOHl2xuev3pBVRd4DKoqiTHQVCXNYsH7H37EFz//BYUynHb3aJFYlJZIwlrF5DwP97sZYdQuqMqaw+lE8plhHBnjHmELbnY7ZM5Ia6kVkMA5T1nXrM4swXsWyyXlO0T42HW0VY2WCmIg+oACKlPgcmZ7vyHExM3dLRcX53z/e9/Bmszbu4c5uyIlrNUsmpKL8xUyRXJwXF6ckUNi8o7KNXPCFxkpEjdvXrPT85W5Ugmf4HDYIaXgeDxS2hXLRc3ZekE/nEgRtg8n/NgTU2a/H+cGlDMhJBKC997/iMPxxPXba6aUESEzDUdSzhhrULrAWM3Z+RKjIqtlS4iR7nQiLxsmN5JzniGlSIwyCCCmNEsUYyZGP89DtYApMk0jIUSENIzDhFIG5yPdMHEdPXXdsmoswU2IlBidwzlPiIk4eoQSDNJjM0x+9sh6H4jRs9/2aC2JKRAnz/vvP2EaR16+vaU1gfeWC2RVoquAtBaZfhu48xtRJmdKaVlVS079iZgyu67nuJvII2RhiEmSvafRgmQMo4+cRsc/++I5P7m555PzJf/w0yf88Xcf8dGTJcvWUDQWYTWqKIlxpnoUpSY5Q+4DtqkQMuKnguyAYoE+u0I0l+ioyNsHBhxlk7B1jTlbkpc1YmEQItAuBZaMtpJUayYtKbJBTIrr7o6ymFAqkVWmdyPGtNRhyTBmxpPnYdpy+dgyHDuOt2+Rk2Nwkdtmw5PPPkIEx3js2d8/0O+PM2Zp0dIWknXRoiW0iwWn4QTBcRojxmpiF6jKChMMp2NHPzjS4YSpK3o/Ef3ERdtQoxn7nuNxD1LStksUmv6wY1XXuP2WHDLGNiRdoRvNeNgjnJ+j/7QhxEC3uaeSArwjh4RDUlZLmhZevPmSq0dXlIVmmPYMQ+Lpe+/T1oYkJGWu0LVhWzXIDCkJjCpZtCV+6pEyYZPEucSoS6ZJ0hSG4XAE51gsSpRRyEWFd5F9NzD5gIuRKQaECzifCbnn4uoRD/uelJghCDmhc8RIEEJwHCaGNzcsGj2DYAUUVuNiICbB4dghhGC1bJFibqbOuXnmLA3eTRR2DgyXIqOk5ubtPdO/jTFMEasEMXpCNvgEYZpo29lv2w09RaHweNzkEbKkc4HeZ6YIU5QEqZlShOzfob8cZ+s1mUh32hFcT7G8oD2vGcYTerhhUSlstfq1nvFfRX0rmp1IhtI2XF09wfmJ03Bku9syujkEOiNI75hvRWlxZcK5REgaJRU7Bz99ec/r5284dD/kP21+SNWWHIeIyRClROmSwmggIFNFqgSTjkSlqbFoYbDlmmAbKBaoAIfDDXZVYKWkXp9hl2dQNSirCN2GxdqQipqQLbGoKcs1xjaEbsS4Je44Z4YOXiCLEp8LlNcImemHEy+f3XB7e80Y5qeXurAgNZfn57Ta8PWz53SHjmEYuH71FiEV7vKSdrkAkXE5cnKenBWlstiy5PzinLKuef7qNQ7IZUF2ES3VPAg3BftTRyoyLgYKO3t5x+6AJFHZAi0zx+MOl+a5oE+OdrXmD//4j/jX//yfowpDdIGcI5ApC4OPkcJoXr14RruoENqyKDQ//M6nbLYbQnSE4Ik5s91sWJ+fU1Ul3TBilOTR2Rmun/BuYJpGnFK0dcOyajCFBqn45vkLjLEYCymCjyM5WRICKQVSwWJZIcYJxoneze+vWazoR8ebn34+jyAzaGVY1BVNZVFKzPj5cW6SOz8g0vy7WZ0tuXm45X5/4ng8cTzU6E8+oigs5PTuSU/gpxEhEsFnEoL0Dm0fcyKj5tyRGDFagUjgJ5AaF9S8rc8ZxBxAXpU1OY9M3pNdQhnL6DO9y2Rp6PuEFJGiLqmrlu1+x36/nZH4CV5d39HtEzUtapkRIqDLv//xYt+KZteWK9bLC7xP3G82PBw2HLsDmYTUlphnnJOPkVIrpJqZ/ZDJUhKEZkqZ42nk//g33/Dk8SWffvQxaEFAo4qGorIYGUEERB5IJhFFwNQNduUhCbSsQBl0WZP6AVFLLj95ilIB0yzQ5QpTLQl+YkpH5PTOm+gEuihoVmuMKZjyRFwmKmMIk6CSJX0wTLFkGAVCOvR2YrUw+OgplEJrjTSWkDKHm2v+8vUbcsyokKmkxoXIcr3mvav3WF6dkY3ky6+/nDemxx6ZEudPapaVZXPYoY3i8eUVplpw2OzYPTywO5xYrNeM44g0JdpkjHCsVg3OeQ6HA14ErJX0LmCMRqbM5fmaKOHm9Uu0mQ+uLQzjNPP2mkXD6dRRGUmInrGbEMoQ0yyObpRgcvPPOfrAfrejbedrlciJ2himGDBGMU2J0QduHzZU5ROePH7Mw+0bTFnw4fvvszt1jN6jU2Icem63HYvFkpwVU474lJBlgUyJ6AM5SwYXMdZy+egph+N+vm4mSHm+aiopaJqavsvvclqn+X1VJeP0wOHQ46ZAFgOPH1+BEPjgMELPW/E0Y6IQefasSsUUEvvTkSwgp4TWMxYqR4+RedZB5oiP8/eDjyAERmlSmiM0fQrookBIgxQJIzMxgyksOU6EnInOcRpGJJlFM0t+ogscp47NKbAuFVoJlP3tNfY3ompb0tYtRVGwWC95efeaoi44u1zx+7/3Y37+i6+4uX9LiHNEoJSgZcQoWLQFQQp6J/Eo7nvPs9sjojrHlAqtJLZdII0ghwHySM6RZGvs6gqZVgTn8GPAB4GuCqQSFBaseILIE0JGolDEZMCa2Q2RWhwHPIl69ZSyvUTaBqsVwWuwGaLAmIp2eYWeBIdTRBWCnD0X5yXOJ1I2TEFxHBw+RpQWjH5ApYxEE4AUE1pIFnWFSInueOTJJ+9ztl5x3GwhRWTO5KlDpYmp27NYrPjks4/5uy9+SciBgGOIA4fbAa0MD/2JQmkWyiPGSFWWlKVFaYktCoRW6NOJPHqED7RtzYuvvkJkaKuGUcBpHNBGU1Ul4ziQc+Tq8hyhEl3X432gtIbSKFIuOQ2OafKMXcf24YHFcjmji7SmrArs+RJ34zmMJ3wGvWjZDh3KFIxj5M1mSxCamDKnw0w1SRL2ruPDjz+i22wY48jYT3gXMUXF+A6aerZckXNiKcF7hxtHhnEkiNmBczwecd7Pomw/UVtLUbTEPCPzPRJTalycs3mFlIQQ51sHgJDvGH4CH+Dt3QOHU0dRFkzHDiHlnPORwjsytSBHkMbMOjw9b19FTCgp8DkjpAKlMUXNd3/4GT/5u88RMRHju2B2O6fhPX3vfR7u7mYVgACfJYiSIWjGJClC5NC7X+sZ/1XUt6LZKZGQIuHCRNlW2Lqg9jUfvP8B/81/+1/zNz/5nP/pf/4fCbFDy8yYHVKCUYJlU9CHgJMZLyGkROczqWjQtaWqLbKwZBGJIc5G7ijJ0pBFCaZAyoQQDikk2kqim32QUismJwADgDQaaRUpJETdIsQV9cpSNk9JQoKShBwRdUVxfoVwCXKBqpYscoFeRrrdCYFHUtF3jtFJZDRkKRl8mKUozCmAM/tOYWxByJLt7oEsofQ1f/1/PWeYRpJ3pHGi0JLplHjzYsKnhC0N96+fo8KMRZ+6PToF+sExoVBK40wx52u4iIv97NRA4KaADxHfO8qcebi/p54apFa0yyWVKTkdD9imoSoK+mmirMp3drIOaQQhhFka4gdiAp8yKSYk80xr9/CAmPUnc6KZ0Xx4teaResS+O/CHf/BHGJE4bu5nijCah9OAsBVXj57ikyHmE9pW+BS52Z44v3rKIsOzb75BaDOb94uScZy4vr4GZojA+fkFRVnz5Refc352xqKu2DxscP403yakQmlL0y7p+p7FoqBaLTBWEfyEtgZtS0KMpJgZg2MYPC4GTmOPj5ndocf79C4LdiIDMXicmzWZ1hgW6xXKSIYpgNCE44mYE0ZpKqWxynB+8ZjBR16/uZ69t8HjfaYTGaEVo3Os12vOzi8ojGUcThyOE1lK9p3n0CXOmpq6Wf4aT/ivpr4Vza6tLZeXK17c3PHy2Wv6ocMWBS9fv+S//x/+O/7L/+K/4j/44z/iz//8z5ASLs4vuBnvyDmhjOF8tWKa7hlPAz44nr95w/Vmx8X6PaTVZDUTTJAahSKHhESShCZnUEZTmgVCZ3J25Dyh05w0Jm1BAAh+NqvLhCoN2BWqWSNFgZQtIY1Im2f9V9OyLBvyFHBTwmWNKRqKpcJojRGR6E6EKEAZTC6JOHyOc8OVcw6E95mYFaasCSh8TKQ80e9HXH9CpYTIgZwDziV22wHTG9CGsizYTxPZJdZV824GZtBJ0Ls88/Kc50iFU5mqmE3r/elANzpCFrRC4ENkWRXsxwFRWGpj6FImK80nn30XKTLPv/kaKSR9f2IKnvNHVzx9/IT7mze89/5Tbu/vKdsFm03HOO0JzlGYhrqwdP2Jbujp/cDhtMUnibYFL549Y1VbztqKz777HcYk0FdndC6z355wOYFScyh5TnRHxzgNFEWJzIJpcpiqBDJSSCTw6NEVXXegriqOo+c0jFRdz+PHTzicesowf+AaI2eIxJu3JDL1qqVc1jOjMEx0w0BRVfgkuNns+PKrbzh1E2Vdowszs+q6gUW1QAJlaTh1PeM0MTqPEBYTBd0YaJQmxkRRF5gyzrkiCMrC8js/+jHHYcKWLX/zN39LYQwoiSIhMkz9gLaGFCNKKjYPG4SInJ2dz/nLJpDywOk0B/X8fa9vRbNrmoau67jfbFC6oG01fgrkMPHs+df8i3/1pzz94ClZyjkqsJTYQuOiI2ZY1jVlUTCYOW7u5mHPNy9f8cNPr0BoUPOTmYgBckDId1ywaHkXdYMylqwiKQSEVpA0CMk85pvta8q8U7hbg1KWjIJsydEikIgSTC4QZUL4jFcTwmQKU6BtTZwmCjeSXEnZ1QwuEZAgBAvToCpNiO8Q3BF0YZC6QtoCF8Fk8G7AhxGrI0pIYpL0UyIEj48ZEQVaKaxSCKXYH7dMhwM6RKwpqM8W7LqRtGhBW47djmM/vCPIwKHrEdbSe4/QmnqxxOVIFomMZNONlGXNvu85PX9BTpmPPvyUF8+ecegCQiaOYYM2Jauzc3b7HUZr/DBhpII05/a2dUNlC7J3ZKU4W7Xs+xPT5CiUZn93y/qDpxTaoI2h2+44O1vxT//Rf8if/smf4ceJ3/mjH/D1L74AIfjy628QwMPugFIGJWfBNjKj3jlq9rt7ysLw1S+/IKoSIRQhCp6/eE0ME1VT0KoCYzSbzZ6MYLN5ACvQFjrvWa7WOOcRyvDm9pbdoePs4gnPnv0VPly/e8o6A+fZDxusLen7ATd5ks9IoYgxM3qPGob5Q+2dF7hpWmLwjMHTrGtevnpFNwZGl1B6tgr2xwNNVeCmCaSjH0cKC26YZoy8MqQcQSSyyFRVgzYTu93u13rGfxX1rWh2u12P8ZLNZk97doGVME1bshsZc+TvfvoTfu8Pf4wpDeNxousO2GKeiUFke3+PGzukSGQhOA2eFy9f48cfwLIgAUIKZEiQA/GdKFSo2dYl9AxEzESE0khTA2JeZghQKZALgbCGpCRZa5B61nIFECIjbTU/ReaI0AlkQOQCVUhM3SC1xnUnbJhQBFKUJFmjh0AWFqkLyr5nnEZKUzAOs9UooUhEApnsHdYkjJakNHP2UpJIXRKiRSiJsQUZyakbcP7EYX9EKclyUeP9EZk1pcxEkUgps142+GiRWdL345xnG8AnyZQEyZSMbuRidU4SEpcFr++3aKk4dBPrsws2feCD7/4uP//Z5zN2CsHPv3rF5XmN1RkjJFoa0ujJyVG/mw9KCXVVENyIUorsI43VMxqrKTjuNixKy1e/+Jrb7YZHH77Pw5vX/PB732F/u+N06nj89Ck//fxzlFIUtuTy8um8BDnsOBwPPH3yiOgnkne4oaMPE6SIsYkP33+Ph9stJCgKgXNHrs7PWJ9dcuhGtseOYrmkrBuaqiLETMoCU9R0w4QpSl68+AKjS9rCouuCQgvicU/oekKWnE4num4gZwBBaQ2LRQ0i8d3vfcbb1y8wYs69HYYeqQ2n04A8duRjj4+C0c3o/qqYFy9915ERKF0gZEm7WKNEwE8dMWfqVjNNPTE5fLIM00RTmV/jCf/V1Lei2aWUub99YHP7wPMXb4gpUhaSorCIuuBwOPJ3f/uTWXSq8jw3MRIhFC7MIsvJOXyKJDIhRV6+es04zoRXlSMpRLKPM+41Z2KKKCnQZs7tzDiyCAgpkaYBChAehCelEWVbkhBIU8y2qywBScJDjqjCggKynpum0SjmRKj59QlTllhxhpeK6DWDk0gbQVhCBKUtlfcMasSaiWGccHH2ua7PliAXODcyjv077pkgZ0FdNQipCMzXzmkK8//1CW0sITi2+x3GKgrJu09+QdM06LLheDpyOu5oKsvoQSRJ8pLOjWy7+brs7h5w3lPULS4lPvnR73F790BVt9Rty0+/+IJpmuj6HgWchp77Y0dhFZerlpKJnAPITN2WJBHJMiGNhJDm0YXWNItmFpAvl7x4/oy3L1/y5IMPaauKy7M1D/d3vHp1TVlodtuH/5e9N+m5LLvS857dnu52Xxd9ZjJTxSqSVRRdJVkDAYY0KMATQ4b/jDzxoAxY/ic2oJEFFyAYMgyUIBTKjVgkiyw2yewz+q+73el2q8G+yT8gwiQT3EAMAggE4sZ3zzprr/W+z8s8TUXUKwQhRR49fcyr12+Zrh0+ZG5ud7R1hdUVuoL7uxvqpmLue7qqo6kNImdqqzG6+FY/+/QLnEs4F6m7jmFOXH/yErRmFSX3h4948OCKaXakUJYaxipSjOVFqiRCCoJzxJAxRhbiNZmzVcNyUQGR/e1LlChJbs45Zudouo7Fcs04DIQYiFkwzhHvIzkEurYlZpjdTGcqhKK8IK2gWy6IzqO1JnhFTBmQGGMR6vcOit+K0w8zx+PEeJwIvgy2Y84MrkfmhFIGay3r1ZIDJR8CaYgZpnlGSU1IkUjCtJZKwu44crPrefzQI0mQAilFZMoFSOln2q4BlUneQ8pknZHSkr1GqAayJ+WRjIC6BiSy6kCoE0UkIbIkhBElDUJpSImUSziP0AKhviICx4JPkhqvG6J2YCpqXTDwQgoykZigqjIxRJz31FoRpWCxrNHGEELNMBhC9GWrlwXeJ4Q0qCwJcSrhMzGilEbrCh+rIrmYItpIQgiE7GkWguP2nsoIdCPxsWdlA8pl2q7jjR+Zgyd7z9EHrNbo6JFC8MvPPiPExBQin3z2GauuIecKGSOuH6m6Ffs58OrtHcMMT9YtWmZ8lowu8fDinNl7SKnMLoWiqU1xacwzc38kOU/0gedffMny/JyPP/yYx+99g/ff/4C763skkuvrwNnZOcv1WQGkxoCpDE3bIOSpc1cl8Gg3ziBrfEikHInBk3NAAtEFxsORQRlGB6uLK6YAGcnrt/d477BNw3G6Q+TAYbcnpogk8fjhJS4EPv7oI8Yp07YdmVx0iKkAGyqjWHYd5+sWKSNKZqb5iFYW7xxKlpf0MAzYqsZWFSooQiqhRykmFosOow3SaHAzLgVSCPT9HiFqjLGk4Il+xmhDZWpWqzWtGUH+Pjf2t+JMPrE/9Pi5DOiNUoUlnSBMjkPcEX3Ar9tSEGJCqkw+5a7O0RUUT13RdgtUCLw9DHz84jUfvHfFQogyyI+eHH2BMJ7evjlnpCl6qRQBqRDKlA5NKHwMyEaTK41UliwtpFOgu4wkUVKlMgJx+nEIpckplOInIMeMUAIhDN6DE5ZkWlTt8KNDyIxIJzkCEiGgrivqpiYJiEIgK4vSZaGitT4BPQ05i1M49EROmehLfoFWBqlK7kWeFZVdEfzEbjvhYsLHSD/fUenMspE0FlRMtMuKVdJkaTgeQURPZTRCFSy5lSXRanQDdVUxj3uUCLx68QUPL86J0SFVRmnFsl4ibcN0uOf+ONFWmmESjD4yfXnLYtEyj0cIHmtKOE9dKaZhxE0zwSVSFGSfkUIz9p4vv3xNfXvk+u0NQz+cZl6Jpm3Z9v1JjO548uwpfk5M08jN9VvGoefq8oLVas08D/TDtljFjMZPI/VigRKRmAQxeY6HA1orZh+p6pq6aWi6AgGoFBx3d+QQ0Fpyc/2GuluWrXmMICVSG2wqyPuFtWilUVIgidRWoaWgsgtGL1FSE7NkmD0u5BPAs3wPtFIs2pq6qslSoIzBe48PhXuXfMTNjlEERLbomAizo2krcvb4kIkabNP8Jh/xX8v5WhS7KBT7fgRZUq5ETsW8LRUiQk6BMRwhRKQRyGyIQaCVxs2O6Isn0RiNPAmJ3/Qz//4//ogPnq74o6drGivLtS8FEKlEG56ugVIohFCoJMixoIOEjMQckcYitUJUFVIaUhLklFAygXDE6FEahAASJS5QCNASoU0pejmgtSb5hNA1zXpNJTum0eHngEIgciYaRSXNCeQYSFmQpQJtSFIWPRfxlDIFUiqk1EhhMbpmfzigT/BN7wLaJJS2WGXJVc34VUDLPDFHwTxPSOHY7hNXmzWrbk2KgcpInrzzEGtrpskzT45pHHlwdcZy2XB/f8ejswUJyW7f8/p4T6sSrt/y8MEDtocD/TTivWfVdNzsI4OLrDcbWhNBSPbHI8dhwmqBEpnjOFBZRT2XbbQAQoC+n1EOBn+N6hZcVWvqrmaYAqMLpJhZrTb0w0DTtsScOPRHEjAeRqQAoyXWVkCmaSoQkTnUPHr6hOtXb3DTxObsjP4gishXJ4ZxxFYaKUuAtvMBowRWwuVmRacyw3hAGsPkZrbbHYnys+9HT1NbmrqhqapfvVT97BiGESlrdGuLxKTrOPRHXAggBZXQjKMv2CkhSCFQ1zWQ6KeJYZoZnWceR9ra0lWF4acUKCmojCaEiBLFiRFSZpwd5nc/XOzrUezW5xeMH35asNi59EhKKaSkYJRQpJAZ9wOq0ujanOZsqVzXEEhtIGVijKArvBL84ovn/OAnP+bZ6jvYZY2wNUJmrC1f4ixLxqpRhso2SAwQQQbAIxWgK6RtQNe/MpdDIEdHOlFzhEiQE2TIKZNERqmiVk1Jli7whMWuqpZEzWHbl5AZY8nOF/W8MWWGJQNzLldkbWqEqfBIYs6ApmkaTgk5pATCKqZxRJcaixK5UD6CR0lJVVWFyJwlaQZTaWJSxKQYHAwhMdx4mttIXWWaDvbuIzrRsNI1uatxlcIQkHFi3Uoq6TBVQzx4LjuDsRVKKkR0xBzpWs1aV8xu5mzV0o8Tr+9ueHB5ydnFBefpvHhCg+Pl88+ouhY3zxynAZUDi26BtpbYl2jMMTimwz27CR48TcwBtGmQFmxdcbvbMrmZmBNXDx6xXq/5wef/L9YYjDVEP5GtZLvbUzUNuqrZ9yPj7PAxcL/d46cJZWsury55/fo1wc9Yo7m6vADgMIwcd1uOOfDsyQMOR4PLiel+JiUwpsaNE94FyJ5la3nv3XfZ7e45HI5EIYhJsDuMJCFZr1vGfiaGhNGarASRMofOSEQSEMtsWWVREuCMZfYJpTQiZSQZkSJKKypjEbMreK5dJvUzl01HuxEo87tfKn73PwFwOPZlBiUSiSKqNEojEXhRvKRSRoQW+OhJrqjuyRkjbemEckIogTYKFz1RGN4Omf/z+5/w3jvP+Mf/QLNSe7JtEVQIJEiNbWpUkkXgKvVJhS5IKRShsLQgDCJGyCCFLtKUABmDNi1Kl8JEjORI2e6K+vSmT5RlhyILgTQNMUJyEyolpNR4BELm0tWmRMgZYwwuJoSSpy+qBB9JSmFNUyxGIZClQBpFFInOdyijS8eKKF1ohqbWVFTYWsMhEtJMniOJqpBv64oUBTfHnnR06G1is+l4/2IJKdIfDmgtmURiGASLVYeNgTgPdJWAhcF7R1M1pBxZKYOuLKaqOTBjtEZpxX63I8YJN25JMXAI+3Lls4puucbNnvGoWHUNldFoqQg5M7mAshU4Tybyg7/7ET5LNmfnPL1YcXdzg06Bp5cXRClZXlwyh4Q+xSNmIsYa+mlidqHMgpXg48++YJ5mamPI2yMiBuJx5KY/YLVmvVoSY8ANR548fUrfH+mHA1oEjlOHNIb5cCC5jFYWN048e/yI3X6HmweG4cCP//4nNO262MkySCkZp4nrm4mYIXggB7QWHKeJKWbmKKmqpvAKZaZedkyHgcmPyGSZXKJtF+S5J8VEs2jJ2TEc9+Tg6LoFImfads3uGFEq8+yDB7/hp/w//3wtit3HH39CSmUQprRAK4GUEiEkSiuy8Oha4ZMn+8TkHRZJbQ3WGFIKSAHSKLq2RXmH94E+Cj55O/IffvQJ7zxYUpuMNb64yKUhC41qF5AUJEkSGSkguZkQZ0xdg1RI6UmxwAiEAElhmqVcyBYpR2QWpYNDoFUF0pJzCXMWulxNc4yg9SlnoAiMXYxoa05dYTxdixVKq2K2FxSbXMy4EPAhIACFwqgiMs0yYysDywIEfVhVgMC7QIyZnBVC1bQyI2QkhelkGlcIrUlSMLmAtJIsFEIUnPxrblnUlhwj0+yZ5pHN+YYHD5/SNorPP/8MgEVb3BNudiipC824qjhME0ZralsjlUJLSDEwjQNtbVFScBh6mq5sdLfbVxyOA8YYMgItElkU0bePgUTieNhh65rN+pLt/shNMuWPAAAgAElEQVTt7sD5okFJycsvPsdn6D/6lMV6g0YUC5d3ZK2o6ophKhtTGRIxZmzdMs0TMU5YJVifLYt9bLcreRZNy+XlJbOPKF2jdc3NrqfdDsQY2e0OhJDwWaKV5jvf+hZfPv+C7fae7faelDOHMVBZTaUUxoDUkmEcGceSmaJFRkpDpS2Td6QE0+w436xZbc64vrljf5wYxhnvJ4RRWNsQokIqQTwBBqIPkBNuPqKzJBrBbhxpteTu+s1v7gH/NZ2vRbHrh750ZjmjlEFqVQb7MlMvah4+eYfZD2wPO8L+gHeR2RezthClSCijCd5zuN+SlCRlQXCRXcj89Q9+ygfPzmj+8Te5UnNB+1QLhGpJSoOuiFmTRUakEVxEpBmJBW1A1UV8nDJkiDGQg6PcVEsHBarM/6QGoUkxk1MRkaI0WIHM5e0uwoSqamTTYk3Bwkfv8VNAikgypgiasywsPCCLjJICYRRanNAdJ2M5lLkXohBuu26BlJoQAkM/lXmkbZhTJMSW4FqycEQn0LZhmDxBBLqmQncNVkmIAaM9o+shFgsbUrDdbfn5z37Ou+8+IUaB1qoY14Wirips1RCyK6iuDForqkoxe0p31Qd2u1uWyw5jDQm4270hPH/DOBTcUd0sCX4mpISqO0QWDMcjkwvFe+oDb9+8xVQ19WLB9f0tuJHzZVcCqrVBGcvdcU/XVihTbFX3N9fMEXKWSAE5Js4v1tzeBtw0oJVFG02Mkc3ZBcdDDyrxxes7Zu/LVlTWZJnYHh273Y5pdFR1w+ZsibWGv/3bH2IrS1UvqdpIAg7DxHDYUym4ujjDGE2VFUIIVqsKJUrguVSKupIQoWraolIYbrm/PxBSoq5rpBrLjDg7tEqEmOl7z5PHD3ly9ozXX3xKCjNNY1i2lprI06uWPP0+cOe34qRcOiqtJFYrlCrXOmkUj997wL/87/8lk5v4n/7nf8X98VAsOaMjxMg8z2glIUSEKtF3AkNKmZQzvYtcD/CX/+EHbMeJ/+rb57x7ecbaSGQMGFUM2kIoyBWEhEwCqWoQC7APiKpByh0yJbIP5BBIyRdUTwaBAopBXRsDlDldPoWwJynJCKSWCD+T/YxpW86fVoRpZtjtGPeOhMdUiqSqEtE3jOQscM5hlSowytkhZS6LCaUJ0RepS86F8rvoymJHFF1VVRtiSEBxjiy6Fpk2GDuR9w4nC1DSGkXd1UQ/Q/AYK1guakQutrl5nHGzI8fM2Pe8fPGK1WpFSlBXJbQ6pcT+cGRwCWMsORSuW2U1f/In3+Znv/iI++2RhObpO+9jjCaT+fyLz5EEoim+VGMr7nd7xnHGGls6uwzKWoSPGFUkPXd39/SHOxaV4XLRlmtiSuxvrhFKYkXCGAVE5jAjk8egkaa4MozSBOdpmwYpMiE5XAi0TcfYz8wBtjdbRuepFx1xmhEkqtowBY+uK9w4cXVe/LWZzNY5ptnRLDIxC4ytQExUdYVIBdxZ2Yq6WZ1eYsXpoHTNcRzxKRN8IjGx2/VU1Yrl4qIg4deW+90rjJZM/YTPqnwfjGYaJ3Y5EyM8evSYeTzik+NsWWGspK1/H7jzW3EkhfZRaUWlIYtCaTW1Zk4j/8/3/walSzZASLF0C02FH2cIGSUNxCKylYBMmW98431evLmm74+Ybs3NmPjf//0P+PufSv67P/9nfO8PN1xYiXQDUgSInhwiYR5QEoRtSSYg6owLjoZTwRABRAQRUSdEWD7JRr6iVCAFKbpifFcVQggQZS6YYinKKI2ta2xjSpatjHg3IRHY1ZrFco05HDjsdqgUyxU5g21bYjrJWxBIEjllam1Q2hQDPmXzLE/LCSccMSXqqqG2mloLtO7RjeBuLNigRdtgtGLqEzLDZtGxXFqcn0kpUdeW6DxTP5JT4am5uUcIyR9/59u8ePmKw6E/zTkLVHS33bNaLJmmkc8++5SqqkowTpY8f/7qFDg+Y7SkXXaklJjnkS+eP2eYPbML2Cqj5qnklACLxYLdoSe5iXVXczhumaOnvjhDCsH97S2H/Y7lasmya1CqjAGMzCwbg0+Kqqkxdcv2fkfKidpaIBOy4fZ+T86Wrltyvx+YfQRtiUgQma6xLFYdLpQr6Nn5ioiHbNltt8TgQUr8PDKPI6SIVhB9RCvJOE7Mc0CNgYePH9MPBz5/8YKu68gCxnkupOJ+OukPPYtFBTnStTWINX/6ve/xs5/+jF/87MPT9yIhiUzHe1QOaAV6WfHdb/8hOvZYscVWv5ln+9d5vhbFziiotWLRVIhcyL7CSkwt6Ict/8e/+7eAZLfdlY4pF69g0ho/zWgBylhkFmSKSHjY74nzhJSQhGRKEJ3kh1/2bP/yb/gX/xz+0R+/x8Va0KkZHSZyPOCCx9QtZInMR3S4RgVJ9iBSAh9IzhHciLCluyJDzAEpy9aTHMuGViWyTkhBES3HUIJPTBElA0ViUyl0bam6FoGg25xh6wahFLNzZcPrAykGMoZERp88oyZXpOAL4jQ6UkqkmIhfFX8pih4uJBASpRTa1rgqkJRkyolusWaeJmLwLKwgh5lKcZqJquI2WXRkHxitJjkPMuNjAQb8+Cd/R7NYM8ZYQKQxc3OylEUfUEpxHAeG0ROdKzqdlKkqi6kNioiLnhRnlssVLkJ24HPGzQ6ZZipraJqKs/UCKSiWKmVY2A3zOHLc7vBaEWLCVBWzd6SjZ7XsWC07qkqVnI+QmfzMannOcDyQkyIhePrkGY/ffcb3v/8D7ndH9vtCNEZI3DxjKssH3/gGzx5d8eEvf8G6W3Jzd8ujBw+4v9+Tc2KzXpKSx1YGbTRGBh48POf121u8yKSUaBYdpm6p2hWrswt+8cmnTAFEoCCmEtR1S3LlZ9p1FSH1ZCG4uXHM88DPf/4RGU3bLRkPe64uL7hcWfZ3r9HKs9AjPk+8efVLLpcN1kx0Z+1v7Pn+dZ2vRbG7uljTVRWN1gzDnihAWAkyMbiR7X5HDIJxdOV6FhNS5mL1ihHvA1oo7Mn6JYTg+s1rxuCxbQM5ETOMPhKp+PRm4i//6j/yw5/8hG9/8xHf/uAhF12FGRP740x71nL+YEGLQboeGSPZWIiJNDv8PJ8Ai5KUPCLJYs0RtnRvyZOyIytZ3PspgMtFniIgSlAnhX1KHh9nkoRus8LqCpoOqRQqJdrFApESjpEkIGGwUhGFBKVQ0pTN7SkuUUpB8IGcBVobhJCkmLFCEIUqvlBtaOsakRXVekWSlsO+kIpl9hAmsp+L0yJ4UoqoylBbRbVsyT6AjBzHiSlkhuHIGDOPnr5bQJOq4rOPPuZic8ax79kOR3o/U1Udjx4+LNt3HxhThEqyOVvhUmD0M0+ePaZdnvGzX36KnktYeRx2pDBT1yvmcSyZtkqwWS857iKtEITgGadSIJQ9ZeF2NfvdHcZCU1uUKlvt13db7u/eoKSgbhrGOXB7u+XV7R2Ti6QsscaiNdRNw90pWnF/u+XDm3tCTry6e4MLHsmerlswTUfapkYrePTgAqXgeJRkN/Dk6gLnPLvDgfLOkdzd33N/6EFqpKkJKJTViBSp2wW2TifFQSCGASEV261jngL98AVCCFKISKUIYSLMjnWrebqp2ZxZqsWS7W5HmiZETkj/+yjF34pzeVaxWa7YrDe8favY9wfsomUInjQ75qm09kKZ4hJIkRw8SIvQluAcwxSRWmDrmkaXOZyaR842a1abJW/vrgk5EEXmmBUH2/E6dXzxt2/51//ux1xtNpicefHlK7Sy/JM//Yf82Xe/wXf/8AHrNrOUe2Scyc5BlNh6ifSeJL7K7SwNiyhAKBSCaC1RQgxHwjSUWaCWSJuQWZekrnmAcUCJjKhrZL0gSUGIAalgveqQYSbNAyFHpAJlazyQBLjgaaoOQ0XSPUbOJEZSLAJioRUxeaQRkEOBmGaLFAqbi0FfSEV7uUEQScERnC22tzjRH/cM/ZE4zXipqE2Ntg3ZCJI+oE/0DQ/c3u2pF+dcPr1kfXlg7o/Mfc+zhw95s91xGEu2LJXFVhZIHIYePTjarubs/JK3b284R2OsJc8TtmlpW8n29i3GaoZ5omkapNYM44FFLYleo7uWcZ6Z3UzKESUlxihilrx4u+fb3/pWyZOYB87PLzGrS15+8ZxxPJZlkkucn13yergmiIAytmTlKsnZxYZjf6Q7X5UO0mWMqdHactxu8dMAMjHNEwrB88+fs14vyTnRdB1ds8LayK6fcM7hph3yJJ5fdg3GVAzjUHJggeAGlpslf/7nf87nn33Cj3/8I8iZrukwMjH7kRgSjalRcqb2ex41Ld985xFWzaTsqHVguVaQHE0laBe/+/fYr0WxsyoicAz9PUJEbGWorCUIQR0EhzSWzaYyKK1wboYsytVNSrSxpBAY5olIQtUWLaGyFVJI5tmd5mYCJSVt2xIRfPbiDX4YOe57Pv3ylmmM+DmjheXjF/83//b/+mv+6X/5B/yzf/pd/ot3zqjzhAg92hqWRiFiQKaESoYUJWRF1hJpGrKU6AgiHMjznjwcUVikbRCyaAT9NBKmwpUrHVH5FWMszDetQBaDO1qVeaSxZKHK1TZ5Uk6FyadN0QCGUDy04rQ4kRKpyoYx5/LCEEqjMWhVse+LPKStaqQAJTumsS8uERrqyrBctIzHQ4lOmDwBAUoWkICSoA3HWbI99FTdOTevXxGmke3bN8icuHvzhnF2pKzQlSUgcN7z7NlTrl+/4uz8irv7tydv6MSbn/6MKWRQFQulmbNDKMMwOWLKDPc7RBIIwMnIP3j/A8Zx5v7VSxabFRCLL1UosjDoquWnHz1ntVrg54HlesXbn/2crm2wRtH7ifV6DWSWy44PHr3Pxx9/jJQCrTVtU5PDxNXVOWebNR/98mOkMVxsNtzcXjNNI7atmEJA5sTcDwzjiLEG0w+sXKEZ98PIoS8ZxFWtCdGhpGW9WhC9Z5on2rqibixGK+Z55Mmzp7x++5bbmzuMrTFG0saa43bLykgu10serxNPzw0yHAlpQhtFcB5FQikgJWL4vTf2t+KsKkEKA1CxaCyJxHA4kJWi1SUFKrlALDpgEAptLFKW1lwbxXA4kFKk74/kYOnqGrQgnbRvPpQw6ZwyCkV/GLi5vSOHiEDikUxJ47MgB0Xv4ejhr374kp98fst3n635R99+l2cXDY+uLEnP6HjE5kT2FaZZotMp7DsVS5TwGVwgzAMpzCAFIrXgNdEP+Hlk7HskEmNrpNS4OeDcRIoRLWu8d3gJqqmxSiFth5IN4+SYp57gCwVGiASySEFyLMHRKWXyV1F/UiEpshghLcYqdNUiTJHVKKVOM0GwVVOIMESsMUixZuxOD2Q/ctgf0AIWTcN6seD+MIDOzMnz9z/+IWeLljyNpP5I1zRorVgoxZAk7WLBn7z/Ab/87FO2d/e4yfHxJx9ja422htkHhCjbw/XmAh8iUjZ0ixW391tigmkKrLoFwXlu+gPDR5/QNS1zSjQ58/TZI2JwTP3EenPGYfC8ffuGm13ParVgN9wQ5h4jBdbWJyG5ZHYzzjk+/fRTxmFgs1rQaEmcekz2fPjzv/9VJrAH7voR1S2RUhEkSGW4v71BA5W12KYqfMWba8ZTDm1Vlxe51RJ8wkXPfrulPx5xbma5uGS1XDB7x/XNNd1yxWJ9xhcv3hLTTFtVWGVolOCiSTxZwkWTMHlASoG1Ea0zRmtSLMszIzXqa1Aqfvc/AbCsBFlIQk4kWfRkSkjGYcAuGj545xGvbrbcHkrgsbGmyEWjJKaEMcUJMY89iUhMEecDlbFYa7FVhTGGFDI5ZLbbffGihnhKppf4rIg5FPeBLA6EIBW5XvJi1/P8+gv++sef8N7Vig+ePOAP33vMexdLzlqFMTPdomKVHO3CIsm4cUtXrUhRMDpPzkUykVMGlxDBkeYyf4oxoVUmOM90uoY1dV28vEKgjEU3irpp8FmjZU3dLjjs4HjwdHVLjAKXEjEV/RYAQpRFhZRoqYEiSckYlC6YKmUtmUxlLUoULFFOCaUklSwPjRQRLSUpeLqmoa4r5qlHK0nTlpAiYT37/o6HZ0tMmPBpQqiETjO1aFECpmni/s1rUgisVyuWTYPOiXEoL6y6WyBNiw+ZYZzp93vmacJlcCkyO8fV1RVXlyvGvj8BIWq8yxz8QHAzlRQc7rZolWmVJCjIleFis+IwDEgh2JxtOGw9+8MBIWfqE7Yq5MwwOWxjkUpxOBx49uQBWsD2TtD7xM3+CFJgm5rjXOQ4QgiEBiPh6sFD4jyRo2MYpyJEVxVN29J0LcYWPeL29paYAtPkORwO5ATLZYckM/U9LgZefPmCOb6gnx0hJhIe52eGaeRiIXmwkTxcCTa1oGkVtonUKqFkBiJJZFIuEqQw+9/Y8/3rOl+PYldLolDIqiPKmn6+R2tZHA9WsT4/4zhN7IcjSQSMVOQMzkViygStqbsGqTLRT1SyXD1sUwbV4zTgo8cHB6nQJEIKRIpMI4aEDwmyQyHIwhf6ii2mcZcifbLsD4G3+y0/+uhAp7/gvcsNTy4XBHlks1zyT/70H/JHH7zLo8sllamIfsLtb/Dzjuh70ANZ7jDGEGMgzJ4UM2AIbiLOHucTWUqsKd7gYkTXSKVKBwIFW5QzKQUg4/xMzooQIzGUQJeUEt4HTFVcIAkBSSCExvmEEKl4j6Us17WTPUtrzTzNRbZiNUFIyI56ZZjGHi8E0zSRC/WgBPRkxUoInlwtuVjWjPfXTMIQ55KaNRzvGT0cBoeXNeN+R7veUHcdbVeTo2Z0gXW9IKvE7ZsbvI8k70/UZY3MmXEcefnyBe8+e4d3nz1lf7+jOzvn5vq6BM4EmPqZgz2ybC1TniAKks8sao2WDV1XUWlJdXnF3e5IEoZdPxN7T4yZYR7Rfqata3LwSFNz2O8YfcQFcCETsucw72ialquHj4pguJIcdzva5ZI5RdrVghALyv94HMnAOI6Ms2C/73GzJ+fyf9jUxVcsAS0EbVUx3vccdkfe3h8YnS95s2Jk0VlUE3hyZjlfOJa1YmENnc1IOVDnGZXLtdnFRMiamA2C329jfytOZQSqqlDdAtWccXf0uDhzvtxgas3b63sOuwGZio1Kl70hWgIkjLUsNyu2txNG17S2orYWZTVZREJyhODIuQztrTWEySEVpFBkGiklcjZlgJ4Syogi3nQT7lQkUxZMSTOLmsMEt5/d8sNPX5eBdoa/+v6X/PE3v8E333vCd/7oAy7rjHH3pHCAMNPpmUZDZSM5JkKALBRNtwLpcaEQTarVZdm2pUQ+AQT87ImhZD9IqUsHFgpPzcfy4ORU/mzOBbEU4le/TwVRnoEckdqijAElwChsZRG5dJFCKpTWpBBxLpJjuZobLdFGo2RNDL6EFEmo2wrhPXJyqE3F0EecXLITjn4/F29q1mitWbaW4xg4Ho9oMkZmXHak6Hj04BmfffGaL19fs+1HmlOm6/l6UT5Dyjx8+IC722uiG/HzwNlmwX/93/4L/s3/9m948+YNZ+dnyBxxGY7O0+qMrhsu1gtu7vckAe+//x6bsw3XN7fc95+zO0zshhL9OI4TQoJznm65ompaXr69Z7/b4ue5uFB8JuQISjNNDpEzWkiqHFldbBiPR6L3BClRVheXiI2nAJyBZrlkmByDmzjbbKgI7Hd7og9cnp0VqySZRdMxRsFmdYa/vQM3YZRjrQQPF5IHy8BFK9DOEYYJXKLtBjqbsLUlyoy3skAevMfY38/sfitO21aYtkU2DccQGacykBZYXr264+Wba6aYULpCS032iZwT69WG/dCzO+zYH7bkWN6ARhTUjbEKbTQyCjIFqim1YblZIfaBafC/irUjC5KoySIiZaSqLE23ZI4zoDBhJqdY7ErZEwV4WfJHne8QGfrXkc9f/5L6bz5itfz/eHze8uxqQZyPyOB4fLbm2dWCBxeGB5WnErlowuZCuxVSUzcNzk2Mg0aIYsVyzpNjpqpECWHOPckF/DQRYyj+WESBSUpx6gYVIIs3lkRKsRTLDIv1kiwVLkUUssT8JTDGoNXJsztPEDM5ipJE5gtjLWdF3dSgMplciMdtA9GXGMBWMSTNaAWzlZhKozDEKSNypKs0JIOfRw53kdXlGctlR3SFJyikRmpTgqZF2W3XlUV4x253y7MnD0nBs729RknJ//qv/xe2uyNzjry8vubpsyds+x02SWYfiMcDqioSluPkePH6DXe7LTfXt9zdH5izpmoXzC4QEVxdXBCiY98PLBcLfPD0LtH3M2LwdIsVU4zYumY8HFgvl1wfDgy7LaKpMKcxS2Utx3Hk/n6HypF2tT6BaiTGNghV8l7PNi3WWpKPWGs5Hna4qUepitmXWMSmqqgryeOm5vFK8d46cblJNFXBtdMn0jwj3YxeC5pKUS87ZNfSJ8nb+xE3H3+Tj/iv5Xwtit368WPqWqPqmu2LPVlLhv3MF5+8YhdGnMwlX+GEx5xiYiYiwpGMR+RQFOpC03RLpBZ4IpWUDN4z+lKckpTI5Njdvz1RajMpQ0iFjKyYiTiUEXTrDmVSwW6niBCCKMpwWoaEyIKYNBEBJ49iFKVoji6yuzvwenfkwxdbZE7k4DDihsYqzjcr3n/Y8K1nG/7gYcXleKQxElN37LzDTPfF9lbVRATeOXTMxHnEJwkp4d2IEvJkc/PE5AgqYqVGmEI7qeqKcRwRISF9Sa6fo2eeZ2zbobXBKIFOCYRGKYs2Eili8f8KDwS8c1ghEagi6LYWKzzBB6KLVKairhacbS549eoFWg8oJYoH1FpSNpQposf5SFtrJgfDNHP36przmEkicN61TLFic1mTE0hUESRPA26e2Cw7OiOJWRByJCbPeP+W/e2hXJmT5JefvCjyGhHQZNqmId73ECONLdfhxlYlV+N8g9It13d7IJOtZjzuyCJT1QV2OQXP6B1Yg1UWBDx6eEl/OBI1fPLxRzTGYk3D5Ga62iJEZnYjMWX60RGFx00VU87oVHJro58JPrETicVyRV1VHPe7Eidqay6vrrDDREgjxwGUNzy+aHi63nFheh6slzRLy2QFTg1UsSFmQ/Yz7hio7IxtKJv5WvDy1eE39Xj/2s7Xoth977t/xmJhOfqRl9sf8/43H/Hppy+52fb4OREpMhOtyrwNMsYU4oPWCiqLz8WeZbSmbSsQAWkkWWfm7JC1pJIWXCTHWJwVksLEo4TmpJhOV0CNtpqYC9NOKUpXJE4GiRNLTiDK4Pgrjl0CyVfLAYnRpuDbgYTEZfBTYvfqls9eZr7/0+d859mGf/5n3+TpxrIMCZlHogp0UVA1HqUk8+RLHKMqnzOnACkSCEipSh6HBCMkUghMXaFVIYegFOOxJ82OU5BZmRcGjzKmaLsC2MailCyzvlByeZWQZGQx/P8KuFCKrQqQZZHzCARaSeZpREmB0YqzzYrkAwTwUVDXDXWTOPQj8xRRQmC1YXSew+0d2lQ8OV9S2yX7/khVt8wJnJI82LzDRx9+iFASqQvxtxI1zjnCHFitFiBmsjTs+x6hBKv1igfnZxhjkQL6455xODKcUr0uLi7xUTC7zGq1RI0TDAOTn09LryLpcbMjZ0Fd1ZCL++L29pa2bajqmunYo4Rks+lwExyHvvw/ZomyDVobpCyi874fiUmyWq9puwXHw54UE3XdsF6v2d7foVSZz97d3YCUdJ3FSIMfIvf3O97fVGhT3CartubC1OzHA/44FT95UmSX2V4fSGLGLGpwAhl/9+md6i/+4i9+0/+G/+zTuc/+4upqQ5aZn3/2CXfDHmkz++M9/SgRWpFywkiFUhKfA82qI+VMDGVIH2M6bVeLu8JUGt0Zks044WhXNbY1XJ5fsug6Dod96e6SIPpECiCyAiFYnS1ZLAu9I+cIJGIEKNfAfBIRp1TCgsiiBPDkUgyFAKMVbV2IFjnnX8kbUJokNDM1R695fTdys3PU3TlSWkLMHFwuDo3kSdPAeOzJWaNsh7LFCSCEIKYietWV/tUss9BQJNpaqroGwM0zc198nl/5akOOaKOojC6Shaoi5QSUYBhjNDoFtABRLpVAYQYmkREUAoxWGq0U5MQ8T+QUMVKgpcKdrtnWVnRdS1VXxceZQaVMJQSV1sR5JrkRQ+C8ralTIo4Ttmvors75+LPnZE7XbC2xleX84rzATE/SIudONOgYT3Mv8NNM1zZFj+dmbrf33B/3tItFSXCbPdPkiKcOX1tbgntCIIaIUobZBaSQCCTLZcfjp48ZxgHnHd67X/28v/fH38F7x26/JwtRbgspn0YAnnEsAUiZr6jJAqUkWgu2ux3Xb98ipCB6X/y1qYQA+WnETY4wO3TyhGGPFYHHjy9YLgyMR9Q0oUVAqEilLMlFBIWmba0uAd0+8e5/8z/8j/8/P9q/1vO16OyaRaGIHId7jsOBOQR0bbh6fMl+2DPMHuElSghSipS6EgutRJYwkhBKCPA0jZA9sl5jZUM2maaqMZUmxUCKiXGeSpcmCnn4Kw/pVwDQetEQZSSKBDIiZELqEgoTcz5BiXMBZOaMyKWbE5TrY0Gma4wx4B0JUYTAnNDqUiJFxqVMny1/93zPq+2P+MaDBe8+XPHO4zMeiTLDs2nCzQ4rLSYv6OoVWghStMyTQqrCRyuVV5xCfSjia++JqWThhlA2vVEEfM5UiwUplYyKGDLeTyhjEUJSNWUTKWQpZFKA91NZiBiFSrIsclQmxozOhVwD5bMrXWgi1lraLlNVXcFeCck094gAygdiTBghMY1mzoo4jezeXjPPgb0LxJCxbYsPkegD++BwbmTVtShjmOaZpqnp+7uSHxETlRGM08hxCKjFin63w1YKP480TU1Wmhev3rIyFlO3GKOZhgmEKnmwQNd2HPsBP7tCRokJfQqz9t5zcXFOjJHXL19iVEnB+/CjX+LmiSQVi+UKJU2Bh84e2Su0Dy8K+ksAACAASURBVDA5khD8yXe/yy9+8QsglVD18oVBnF6GyKIW2G/vMVLSNB2iFtTC4Lzj+duJMbzivWdL3jtrsLI8E8om/FS80UZJ4pzJPmKtpql/90vF7/4nAEIe6IeBL1885+5uTx8Udac5uzjjwZR5/vItxlhqWZUNmMjMfianVLgfOZ6oGJkcy7VXNwbbWYINhdIhJQ/OHzHvA9u7Qxno51ONiKWACZGou4qqMfTT/ld/p5CgrSqBPBT0exEN5JNQueCNRP7qElsyB2KIiJhPS4JSHIuTAzSOLDw+KaYs+XLneNPf8MPn1zxcaL77B8/40z94zNPzGnLEzSPxcEuWmcbW5Hj67DESkyup8EkgjEUrRUhllqYR7FPG/yf23uRX1+S+7/vU+EzvcIY739u3uzmIojibiijLUgTYcuAEWcQJIG+yyjJ/UuBdFgKyzCIK7BimIokyxcHi2Gyyxzuf+R2focYs6mUnf0AjTTVYwFnfg4tT9VT9vsPHTziXSPJQEOA0KVUo0RTSvZ9QRhWwjjXopsYbQ/ITymrSBNErlK1QQpGEJEuDSByaZoqfT2mLEqBDyfUiJFXdILXFp8jJyZxtdLAfQRfaWsiCqFtGFPthwodAQoHQ/M7nf4/Pf/ZLPPngA959721SzmhraZuWzcEvWVdFWFHaMkwO19acX1wiYkAEh5SKWkJWkqQUum5wg2M/3CBUOYQXR6fYumF0jr7vMVoV/6atDn65hBsHLs9HENC1LVYrtJBMfc8+OIw1KFNSKSHsP+o/tLqUgGalqLs53//+94kx0LV1Sb0cyF/7/Z7KKGbtDC0z2U3omKlVpq41nZaoIVKZjs008f1fXPJsWfGZ447P3r/HnduG3fk5+9WOTEYZSYgSaxpsHT6p7f2xrU/FYWfsEWrSrNaOYUqMvtQgVUZw/9GSMQ6sLwaS9wfjbz48VwU5xo8sF1orkshoq6m7uszsBMUygeaPv/Vfcv7ymudPX4HQZW6XHDkJUhRIlZgtWrJMJFnmb/nQTiKVKF9eIGdFSgGfMvnX3UscBnqpeOPK72M5OTnl4vwc7z2QEJnyBM0ACiMVMUl8EvRR0iPor+HyH17yqyfX/NHXPsPvPDxiJiJuu8Z7z7xbUOkKiSQExxTGQr2ylroyNLNZaUXJimkKhGnCTdNHLR45eqZpQA+aeddibYVSsgBmlCpxuG5OPj5lHPdM+zWqqWiywJga7yNjziThyDFRaV0OoVRagIVUSB2wdSyRl4PPr65rbCVh2mNChd/1ONeXp3Azw2ZFRoFRSCxqPiftexKaz7z+Bvv9BucHgg88ffoUIogYmLUtw+hwwdEdmpVrrWmsolGSxiicDzjvC+DI1DTtjG2/Yz/2KFMxTiOmaui6thiqK8c4jkzTwN07t5ic5/zs5eG22mKkxGpN8oHoHI7Ciw0Z+mmiazvcMCLI1HVNPxUk5zAWBEFhgpTZpdaKYRgJoYwQkJJbd26zu74h7naoHKlUwqqM1JnWaqrFjPMdTNbyq7Mrbp1KHlSSk9eO8HjwiaTBI9Daotr6/+dd/fGvT8VhVy8eEdINPhpAY0wixIm6NrRdzRtv3OdpvmB/7Yi54A3jATLSLmb4ybFebZAUnkG7aKnaCp88kx+QB2Xw6YdPqOsF3XzGsN8RcjnkioiQ0EZirCJG//9pDykzOaUkOYviZxO5RL8OrIqcCiQIfo3BAe8D4zTxmc99A+8Dq5srcoqHn0BAEbJExPIMF5QkR8qSMVnimHFnjs3fvMX7jxb8zmtHvHZ3wUlIRBepdbndIaBqDFDSDlopYvAoBMM4srtZs1qvGSeHCwllBVpqUihIyRQDOUps3TKfzwrx3hhsZUm2QtcWW2vC2Bc2iC5KaV9pdus1w3ZHlhJT16QcybkISVKK8oEYBPGQa5ZWY3QFw44pTexC6XsztcU2kgoLFhgCvvfg9tw8/ZBkWs6vrtiNO1AFKuSGESs1UltIkTdff43tfmDXj+yHCSHVR/jCOI2QHMezhu0Eg8+s95vyUawqfMq4sSemTEyJlBNKKSDTDz3Png0YYzg+OmIaJ+7culVA5bFhPVyhtCQC/TAijCEnwb4fefPxY6Zx4PryFTELppTw04SUCucnpnHPsiuNxLaqqasGpQT73Z5nzjOvaubzGZUcGftrkJFOGkjghxErM1olHj++xdGRot+/IktDsgltDEIpshL4rMCYT2Jrf6zrU3HYieqIVEWiqejmLaezOS/Or8iiQYnE8bIhPzrm0mzwo2B9s0cZS3vU0CxqpEicv/BstiNBGbrTmnqhmfIIucCzvVQs7nYkHxFqQChPjokcFTEUDq3pamxTM/j+0PwriRJAEJMkpliSFykX0lgSgAYRikJbsmdl0J8Lwu77P/wR1iiabkb0E24ciCkWwE/O+MOtFCEKr4KEEuGjvO6rPnP+1jk/+uCaz752hz/8/JJbi0ireqzIVFbQZEsnWkyOGJ3wbsdmCvS7iZurDRerNcPkUEKjZEaGhCRQTYHsJpL0CBRKgtLNYWa0RyaPQFA3FcFoCvWtcCNtc0ojBTGEQreyDUIJlBQH83Y5cGttkEIWEQio65rq7gneRPBbjJUIVWHnNXnKzJTGuYBTESsjpzbzwdkT5OA4qmtkXRNzZtz1ZJVQIhPdSGMU6+Bpuo5jVbP2cLXZYkxNLTJSREgOa2YkFCGUF0HXtMzmc3wsDSx10zB6z+XlZUmt5Eg37wAICbIQvHjxgnt3T9j4Hl1LUspIM8Mow7DvsaYwOS6uV8zmM6ZsiCTG4Fksl0XNzsWs3TtfYnIoEhGVEiJ6UgqMcU+WI40MtEoiRMLLni0jbUrcqRL3lOL1WUOTHFpOUDWomSBkRd0skEIzpoD76DP8j3d9Kg67JDTPzy55eX6BVIp79+9zdrVmGj2ISGUFs6ZBnCiiE2V25ye6mSk3gsrQ1ffY9QOX+4HupMG2hmEYkEaitGY263j7nbd59ew5iQkp0yFuJUkClBY0XUsm4UMAkfE+QCx8hUJ4L6aTFEscKx3+fkohwQG4cxA88sHCsdltikG5rlG2QuZSbSeTRASPyUXtNEohdREY8qHzLElNjIEkDKvdwC/ee87N6oaTruXeouXOouF0YTk+bqn3DiUc+rICCcM4sduO9NuRYUwIWVMrMCKitUdHmITAjR1IS50iOQdqI8uYQCRi8iAk1lQY9etsrUAag42C3DaIoyVKQkieNFWMSrC5WSG1QcYyrM85M+xHslB0i5ZuWbFmZBqWDP3I5DJRBLQ1tEYyTI5+8Ai34+blhNt7alWxu74m6YrZ7Vt89evf4GqzIqyvISfeefddQhbcf/Q6q/UVViQGICNQpsLqIqKE4Km0Irctk3M4F1mttwfsJWy2W6RSCCkgg9EFSl3XdTFVxyJIhABtuyDvd0gp2I+OaRjRsngDU05M04TzHm0tCpi8x3uPFpL5bI5zE0OYULIwXtfXN1hbGqFBHJ61HqkiJknms4aurum0485c8uhIsVAjrfQokclSE5CopkWpmro7QgiFmwK7/fDJbO6PcX0qDrvnr8759t/8LTebNaqy/PKddzi/uCxIOKmotUSSaKwqEJejjs0m0taWqqtZHrW4sUfajOgkelYTZSTkQqRSsvAV7j24w6uXH5KlR+oC9MkHRVdrRVUb+nEoCiuHueBBUOAwJySXkoBiNym3M3Fw332Uv5dFmU0psp/2uOgY/VSe2eXuVnKQCJpKUyvBsmtK9XmK7EbPbvQMKRGFIEuNNA26bhhpOdt4rq+veA9PpTPLZcts3mJMiYEJremHib6f2G97QgzM5zNOFgtmc4kZI8vWEtzAbDaw1IJhGFn40sDsk6PKElXVpY6KktcVsqQa8kGVsG2N1UXJ9mFi2m5x41jSLwKUNVRdc4irRYxtaGcttQi4vuOE2+y3e/aDwwVDnjJWKG7LFiMi/W7CTQNtloz9RDUmkskcVTUPHjzgzpuP+fAnP+Hq8oKb6xWf/dzn2O33cCj3rGtL1TQoGTk5OcL7ETsErrcT69WOyQdQRWwJMVK3DVmA956cEs6XQ8ekhBQSqzNawdD3JfwPHC1vsV2tEEDTVOw2O/rQY2yFpEB9Ju8Yp7EwbJWmMobFbMZqHcnTyDDsD6ODorYaVbx5Ocby0cggsqBrGobtBdb2zE9aZipx2gqUKOmTLGua5QlWzwm5IpsKhCYKyfNnLz6Zzf0xrk/FYfeXf/mX/PRnP2U3rJgt5/gY8SExucRMtGQURgn6cUOjG+7evcWlUdRHc373a7/H6Pb8/Oc/hlwsF8LA5EekOty4pGS5WDBNA8iEMhJTG4QKpFxsxaayCC1Kq29VkWIsg97iUoIDwCYfCofTQeFNKZNCOKAfy7+FyIV2FjPRB1Jw+BBQSIwqOdEcEvPKcu9oRisTViRy8mhrqBDkEEkx4wPFqnJoKnl0ckwKE/t1InrB2kXOz0bimcMHgU+5pC5iPswYQRDR+orGbtEGrBXcXrb87sMHLE8y1mfkONDvd6SQ8Mkz7DyzoyOqpiUpiTSWg7pywF5SVFoSWSSkMjAWHGVVt8Q0kGRhx2qj0FVd+giFIguoj+bUM8t88tzcbNhuPHHVo6UgB8esSuR+guhosi6MkZiR1rI/e8E7P07c/8Jn2a63SGFYLE85v1zx2uPXefzGZ3n7l7/iOAueffCMRVtxdDLDVA3DsGbYb+h3ezwCU3dEAS5EpPNUlSHljNEGrUy5XQlRlHUlceNEP3pSBmstrz14hBtG9m5P8K7YWzL4kLC2Yj8WIHaMmawLhjPFyPXNNTlnrKlYLhflkD74G0WClCGGSKMls65Djnvcbk2tPI/vtpzO4faR4fZMM449k8xUVY1uW4Sag+gorklFyC0fnD/7xPb3x7U+FYfdD777d+zHNaoWODeUGFaWXK125ZaUM8fzisWyJY2eppYczTvmx7doTMOrly8JDoyu0SLgYjikBEo9uUQhhWIaHDHGj0ykKUMiIxS08xplFfNqzj/7kz/hZz/9Ke+/807JfAo+6oUrPjpJTqEM5Ms9DyGK2pjSr43NpVYp51S+0Kl4nwwJk0qCY9EY5lbSkNA5FW5BbTk9WTA9ecYwOKyS+JiKRyYGVBwxREYiwiiCNoik8CEwiak8p0IGpZFaH5gdCpkMuz4SiaASr9Yjm13mzu1TuoVFTYJh3yMj5BwZ/Y4wjXTzwkqwiKJOy6LYJgoTFy0JB++jkBKhRIn22RpCxDZdQQt2ArI8tE5HVDujNnOsc+SqIeQVbgrk6Fh0FpsjwmlkcOAjNkOfE9IEkgo8Pl0Q1tfcqxRrNzG/fYvL9ZZ3336L7fqGxiq6uuOpkOymxHvPzjmaG2TO1E3NMma2U+GBTD4ScqLpakSGGCOPHz3i7OKS3W6PlJLT0xNwI5VSpDyyWCxp24YXL5+Tk2OxmOEmx6yb0w8jJmb244S2BqNsMbynyPpmxXzWUrdVwQlIzfnZOSlHlssFbnQMu5Hj5ZJuPiP7DbXVNNLSyB3HneB0JjheaOpWko1i3Eek1shczN+lzKFGGsWUYJoqLte/rWX/jVhvPLzNfmp4dvGUvvdMuSIh2GwHpAKtM0o4ThctKWfGaQc5c/7qOe8/f5/dsMNaza1HdxnXF7hpIvya+JUF827Baw8f8+Mf/oAYCm7O+0yIZeBstODk9AgMHJ+e8md/9me8ePGCp9ogtcAoyX7nSSlRzh1ZyjkPczylFMYY2rZmmiYSiRA8mXwYcmdqLWmVphISLYqSO28rWisxPmAV3Do94eTOHdr5KS/OzrnY9UUUgDKT8Y6z1Q6rDyQzkUm++OaskYQJ9EFUSYcnMyIjUoZUlNKkJMpWhBx5cbXlp796n/v3OpRO3FzfkLtAXRlkTDi/I00OETOzo4RpOtAGqQ3o4jNMucDChSwWn7quwUlCHEsJqK0RymBNBWiC3zJMPSKL4ulr59RYToPF7x1uKu26KhuybwjTBKLQs2xVEZVA14LNB79k8gGTAkdI9s/XNFXD5x+cUM8ML88vePb0KcM4IWRFRNItLP/kq7/HWz/7GQHINpJMQ548jCCkwI8TAFJIZm0HCLz3fPlLX+bm1Qturm/YDI7VekU/7IhTz3LeUNmK/W6HyInKWggJ4VwpcVCSuumwEly/B8pNcRxGlLTknIs5ut+jUBwdHTOfzxj7FfPKQvTMKsH9ecftuePWAuYzS9KJPgtEMwMc+IngB0yjkHVDVJlx8pxdrnj6fPVJbe+PbX0qDrvbpx15NbBczrnY7AmuGHSDj+z7kb41VKbg/aTSTN7hQ6QffSms9IE+Bp6/fEmsBCFGnE/UzZzOGpSAd371SybnUaZimnbl1lecwVRdg50ZjNb8wX/xLUKMrDfXLI8bZm3H0fyYt976JT44koeQ0keQ6hKlkpAj49SX5yyF4ZpzES201syspdXlsEvBl+ZkYhloEw9+O8/V1SVPn7ykqyy1kuzHCaU1SglccGxcQ4PESoXM8RBfi+SU0VhkKv+mzKqE6SWHW2ggZRBITFEU8DHz1nvPefON+3TtQ3QaMQlk6pBCkMiE5FlfX+G8p5kvqLoZpq6RqcyVpCg/pYqqJAFiDgilEIeMqDvgI+0htTCOuwNgPIFQtLOWRlXEyXNzKQjjHpEjTWtoW0PGUc9aoqyZoiQGR5giqh9x456oDAhD6nv6aWRoKu7cu8uelpgHVNWx6TesxsDf/+wttjcr/OTJypYnfwglg9yPpOCZnOPq8oK6adGyPOH/4Qc/RMuSK06xVN/r0sTPdr8h7hVdN+dqtSYmMFWL85HZfMnJrVv0uy3H847rq3N22w3zusFWlr6f6EyLcyOSjMyJ2kr2+zUiDJBHdF1jmop2rmjtmlYnqm5JrGdEApVboeIaqUqVl9IaXWukSshsePf9J5xf/eOHZMtP+hf4ONYXvvCITCFs7UYHwlCbBpkEMQjWmwHnc8HghcR2Ghm8p9+PjPsJo6qiRGWBNoa6aQ91UBWLZs63fv+bWKsZppKDLDaRYj0QUtIuGqKZuP/gLn/+r/+c/W5HEgMn9zr+zf/45yxObiGtRFlFIiEPPjKRU0kPkJFKoBQIccAoimJ6FuJgS86lZODLX/86R3fu4VMk5YgxkllXsZjV5Og4PV6WvricWbYNnTEYpRBSkqWg7zeM40SIMDmJT5qQFT5LshFEmciF2Q2i5Fljzjgh8Af2qoixWB+k4KqP/PDnz7hceZzPeO8Yp4nBFRU4C0kKkWnYMw0b+t0Vu80lcexJvmQ4VZaorBjHiSk4fJ7wMZOSxvmI0gU5qW2Frmpm8yWVaQoZTSuUAVFLju/f4fThY47u3KeetSgNdaUwtWC2bDm5NWM+MxgVsTJgpadYvwUqCaxLNB5aXfHaa6/zz//sX/HFr34Z29W4lEm65tnlipsp0GMYssLn0gRdqYrT+THLblGg17OW46M5y3nLrK4RMTMFz2bYc3K84HhWc/f0iMpaqnaOD4LNbmS1Gxh8pB8dxtQ8fPCQ9dU5m9Ulq9UFMU04PxzELzCVQsnMomtZti3zpiJOOyqZuDWrud0aaiuZ37nHPmuMaYlDYh+WyNtfp77/ZXTbkrNDVA11V1IrykJSge0+8eHTLZt++uQ2+Me0PhU3uzffeMxP3n6bXz19WewmMuCjop0dY6sGN5WbxWa/orUWFxxxKtxRkTLKKjyRbEvDic/FNS5QpATDMLLarEuuE0OOEueKkVcbsHW5jUQEu7Hn7//zd0kiszxZcnz7mPX+mmwiwuTS45YjknJLijmSC9cGrRU++I8A1eKQGU1Q0hY+MsWMbTt8ioeG4ZaT4xMqEuvNlmfvv8duErgMyhis1ahcnlhBZKYIu31PCKn0oCEYvSekTEiCyQm0tQipiNmTYqnjPqBriy0mC2Iu1fceyTtPn/Hzt5acfuUNghFkkannzeE5HtAHmdlPDoREK1syyNOEsRVKqVJZFBzOTUhpULIqhDA8KZUkSkyJED0hemqrycl/JHpEIagXC5RpmdoKKSbCNEACUVdo25CkoUOX7jsyKhliyIwJssikLPDjiJlqZEyc3F3yzx/9Cf/nv/uP7PYbZM58/vXP8uTZE3bDxD/9oz+kaTv+6tvfRorIrt9itWaxWHD//j3GacBqyXq9oalrpuTIeWK/W2G1xWhNZSqyEEg5YYzh0aNHvDo7ZxwHlDK8fPECP5U8bwyOi/Nzjo+OsNbgJk+jLCHDvOvodzua1uLdhEKic8bqjhgCbvTkYeQmbKmPa2p5xNHyLnE6Z7X31LIiSoMWoGWG7EkxsLoeOXt1ja26T2p7f2zrU3HYWauxSjH1I/1mIEpNpiubhjmf/9w9Yjoj4XAx4GJGK0tjW1TyqJkFodiknjF5Bp+IwWKkJfiJn/zkH9gOa6YYiVNiGgJhohh5dcJUmZAcLkS+84O/5fnZE7LK7KeRv/jf/oInr56RVCTJUMDXZEoJSEaJcnvTpniztNGM4wRCklJAiEQSAp9L0/FP3n4HN45MEcYoGJNkyoZu1tJfbtkPgbWDzTCWOiIl0bK0mcgMXkiCyGyHCTEFkIqYEyElUjL4UOZ0pkDuizcw5xLcFyXKJpUqLTFZlAaWnHn3wxd89vaS08UDuqMlZl6SEn4a0RKaphhlSaCFKtadAyMXkUBkrNHsckabiuXyFgjBbn9dwNVZMDlPTKUeX6tCro+x9OxFoXFCotuOWkbm8QQ/7slJYNqOkIplR+kMscbtelSCFCUyUEBJKDa7EeU9V0+fYo5vsR08xvfcO1lws9lys1nTdB0RwfHRkj/8o3/G2z//OX4cmPodTVWhjWWaRva7NUKUmXFMHj/21JViOw4M3qOkZj9OhJTo5kuk1swXC7a7PcMwEmNiv9swawxNXTG5SNc2hOA5Ozuja2Y0CgiRRdehUsS5sTTRJGiMYrHokHmi1jD0K7JN7HtJPrukefaE5M9IU082xScpUiKGiTjscEmwuh7oh4T7tSn0H/H6VBx2SpYAvUwCKxSbfkRohVEzHt5/wNe+8iY/e+tvijjhIxGFoAzadRYMbmDSkagiPofS/Q/kONGYmqv1GUFMJFFEiRgyORZFtVvW2FoR8dRdw4dP3+Vq9YrP/c5nePTgEd/77t8TsyvM2VwOutKQUp7BUojDM00gJCxnSyZ3WchehyezEJJAGXpvd1v8NBFT5mY78MLscKOnNYZpygxj5no/MAWHVIJFNyOlRPAeLcBFQUxlbugThFhUYRDInDCKkr3I+XAwFyVZApFMzJGYSxJEZHEAedesBs/zqzVfa77A4vQWwmScC0gpqI3GKFFM2rJ03mkKtzalkowQKaOExtoakQ9KsPj1LbNU39dNg/cDiDJ/JKfSJxgFpp2hbUsOCSUazKzDzDpaFNN2RKZMSKBsRlIxpBGZygbQPtO7QIyC1iRMdvjrC9yHHzJrZ3zt0X1+8v4HfOlL3+T7P/8ZJ8d3uX9yi//013/Fe7/4BcN2wzT2eDfhvafve9Y3l9SVIuWAj4EsJSenJ0zDiBsdu+2AUAoXIj5l/H7P/fsPuLi4JOd8iBtGQkpMMrLfg1RQNy0xllu9VArvyw2srRtuHR9xc3XOxfkZr92/h0mOfupReWDY7Fm2Ai0SYdizfv4+Vgy0zcCyHjGyJE5EgugdWSu8V1yebxjGwOh/C9z5jVhaa+6c3uHe6W32+0sqY0nS0o+OFy/e59X527Qz6DpVNlfKKGtI0jD5iZv9FjU3+OzxOUCGWtcs2wWni1OC33O5PweZkTIXgHQudeSLZYexpcfu0cN7VA1IVZgVx0enTJMnRk8KEGMp6CzSRImGSS2p2wqlFSlFtrttaXnP4qOAThbi/0UsxkiOA5pM8Inr64RvGozWhJRxsVQ11XUHImKURCiIUhNCYvIQk2B0uVS5K4VImZwiVnoqq0sES2Y8GZ0LKHqaJkgJISIxe7IslS8l+qsZEXx4veblesed9Z6jRV3evbk4+XMGoRQpw+gm0AJtLDllvCvROyUE1lTEmBFSIKRA6ZJlztFjc/Hg+WGNlgYpIwAxQ2VqhFL4kMiiPONF06KzIWVBGEZqW1FXFeN6Q/JbirQzIU0my8x+OzKra4yObFYXvP/9DUFI2lu3uXvnLicGvvLma1yvVgxXL2kJnD95H1M1CK2ZzzouLi5ISnLn9AQjS5IEpVhtN6QExjZoM3Lv/gn95EEphASE4OrmmugD3nvapuFovqBpGl69fEam4DwTYOqGMcDoE1948w226xUvX72ksZoUJpazGcNuy9nqisZqjhqwSE6ahpqMjhkVI+sP30Xf0kyLRPAZ21VMQyx+zcoQXOb6anMgz/229eQ3Yhlr+fo3vs7i6B7vvPuSy1XP2eU1v3j3Ay52K0QE5zJDb6gbjRCJnCasDSSlsHWDqiQuRawAKyteu/tZvvW1P+bZhx+y3WxoreNyd01wI9M0kmJRE+u6kN/rpqVtK548+wUpT7x8/pSrsw2b1ZYUIikISKowHzKgDv49rQ5zsGLBKBaP4t8rt7oyG1MHcqf0gbbW3J53dNaSQmS/71ltd4whYdqOmWmKOTVNpZX4QAKTMmOUIB1sLUKa0mUXJRA4mVm6rkZpQSAypkRShpQyfS/wKaGtJcVy04ouQIIUI5vJ88HFBT95933u3V4yt7cwtSEkxzCOHJ8sMdYilCEeSlNT9mhdDiA/uULjkposAkIW6A8KSGCsLjaVmJFSI4UqIf2UUdIUBbmATkk5YesGfXqb0Y4F3l1b6qqmqSv2MpHcjF2eSjmBz5hWYVUgBUXVaYTKXK0c475n6LfEVy94+fQD5nfvcfn0CZCYqZqqrXl1ec3p/Yd4Mt2sK8KTgFnXEUKgXSxY7wdenV0d4OySyffsh5Fw+OAcHZ3Q9z0xRhaLBVpIHj58yM3NNU07Y/KeO3fv8MGT81hjeQAAIABJREFUD7nVLvnilz7H2asztuNAIGPriu1mhSFxfOsUhWB1veV6PdJf99xTC2aLGXL0THuPEp66lohJs15N5FGSG0MjIPo9ksjoq5LfFuLXnvh/1OtTcdipBu7cvUvX3OXB3Td4/+lT3n7vfa5Wl8xu1VxeDzx9cUFaTQXOIxVWeSSexS2D0hp0woqacXDI3PDg9hv86bf+BdWfaL7zo2/zF//7/0pOmWkIxKk42bUplTkKxTe/+C2++ZVv8YPvf48YDCOR0a3xMQAWmQM5BiTF5JtioUopaxBalbrzyQECKYGUkUIBgqAliERH4nZreHg057SzBJ8YnWatGkZ3jcsjSmc6W6FyRohMqVCmVE0JSRShzA9DQkpTrCspo1XmtDPMZlXxBs47Lvqe9aHA00qFSQYhFEqWueKYCjhcWwMkdiHyk/de8IXPPOb2ouJYzRBJIFWDkC1SGRKH1hYfigE5grRACng/4rwrOVMSIkeMLpVLOSayEpQSXo2PElQJ1yckYYxoU/7vpJJ03QyqhlmTGFrN6EZ0VaOEKPNCv2PaX2GNQGXFQs/oushuW4zTNias8SxqyeQcvh9Jbo+bRmb7gWAVJw/uoOdHDMFzerpks91jRMs09gz7vjQxW8vq8ortMDDGzH43slwsUdqQcETvScHjph1uHAghI4UmpsToJlabFavNmuAdq5vrgsUUgs16zTQNvHf2nFnTMDOaWmQaBSYNXJ5dopNgPrcspaAhsbte43frkrOuamQl6Z0nhjLfc9sebTVZevbbxN48ZDNORBGwvy0C+M1YVjwHPcPMW2oj0eaUTX/Jo+sTNj7jU+bea3/Iya37/OX/8ZdkF2mMxtge2dbYI0kyiRAiUmraZsbj11/nvfd/xTvv/ZJdvsbnCSkSwSWIEi0Ut27NWBzN6AfPl7/wVVo7JwVNiBpbSfq+x0V3YMqWA5IcSh5WlYIB29ZUtcUqSU6eaXJkIUuoP+RS4CgjVsFSw5snC04qjQgOq2tOju8xPr8GsUEoSwgZVQm0FASfSi28ECDLE2/widEVWpYWEFMgekdtJW1V0VWW2WJGrg2DzOyHhJsculZUpmU5P8b7yGazwYUJpEDXZciPsFzvAm+9/4Jbs4KVrKxFSs3q6gatBcoIUvZMo6OyNUIqnLFoo3FuxAUP0uB9MfOSy4w0ZEfwPQhLQqF1g1CFVl93CyIZ53oyAS0lWhpAIFVGiI5adiSliSEgZUKvaxYnC2TSlJGlReiMTyMuCDpp8JNnQmAzOB/K77C6RAeBTBWbs1csjeUPfv/rXK537HdbqqahNpqz80tmxjI6z24c8D6y30+gDP3kkYSSgFASpSR37xyj5B3e/sV7bDdbbF0VQ7kUhw8m1KZiPuuIzjFJSfDFOpNDwFqJGLcoHZhurlgowdHJCV0rSbs9NkeG3UQOgUpEhLGc3rvLdn9VPJ1pQsTAbnVD01Buy9Kwd57BD4QpfoI7/ONZn4rDLl9+m5A80iwx8g1kmjGN5zTNgDeZW6c1297xwbsfHCrRSzuI8x6hO3RTM7LFZ0/IGZ9HVJ1QbUI2gb/9q2/TD2vCNBGnMpiXlGaTcZrQxqKs4MMX7/Hm5x5z+eMXvPboIb/85a9IORKSx4fSO6eVAgO6Nrz++msYq7l75zZf+8pX+OlPfsQPf/BD+tGRQkKoDCJgESyE5lRbhJvY+Z62WnL3ziPOVnsu1hd4Ij5C8JmbtOVoVh/ytoZ0CKX3o2foAzkmjNSFJFXgGSRhGF1gqWu+8MUv8Xvf+Ao/+OXP+A/f/Q6T68kCkJkpOlzwjH6gnpXGX2Jgt+rpPex38L2fvMtr9+4i5JrjzrK0CpEcUQiEMUyxAKwnqanbGV57kJK6rdGqqK7TVNCLMcYyhE8JbVThhjiHNKC0QZsGIWuUKN1sOY1oLZGEIszEiFQWU1kwmhAdSWVuv/aQplKE/eWhhcZiOoWwjvV6wkyJ7DMbN5QOPGFwObKfHCYqZFL4cWC8OAMh2Own+u2ek9v36Ra3kFUNJHSl6PuBKluszAilqYzFh8B81qFUqax348RsVnNycsLFxTVCwsuXL9nv92hrOVos2KzWbIeBhTFM/Q5bVwz7nuQnpvWKhwvFm3dmLGoKT4TMvXtL1mdbGj+hoz7MmjNSBm5uzhE6gRBoPWPwCqsFYQyotmbaT7h+pGk6vPptXOw3Y21/TszXeN0g7I4U3uT66gk3q1d42dFvGx7e+xz/w//8P/G//Nt/y//17/89tVZALPQvq4kHeLGqNM4P/PV3vs286rhen7F3K1JyROeRAawQVLViPmuIOdG0Ne988DbPnz/jg6fvohTsdpvCFEiRmALel1IBKUBrwfHJjNM7C05Oj1ku5ixOW/77f/Pfcbm64MnTF+z7keACAqil5MjULHVNnjzBGBINv3j3CZe7LTs3MMaIDyXHut2vybGnMhJBJKaMDxGpNLdmAmtnCGWYQmLvAi5GQgz0U2TwiYTmb7/zXZ5fvyJNE1YoooAQIonIZrfGtIaTo1vMZh379ZoUA/t9YLse+cWTS/7dd37Kn/7+53h8uyPUibkKSDIRTZQWKRJCZ1w/IHQiS/ERFIeYGXYDRmqklChZbn1SZRKRyXmIIFUpBw1ZkWMgJ4FSlowjZkkS5TlsbVMYDUqhlEAQkHnGjNuEXca7hA8KFQzZOLbjGZpMZTLWJFQl8C6ickJVihAFOXtCBj/tGc9fUtUzWi2x2jCbLxlDz3p7xWa14fjoDq2JoDbMlgtevXqFlBLvRkxbsVjMuDi74NXLC3KWKFXwlzduJJN59Pg1To5OePXqFeevXjF5T4iOO8s5cWzJ2zM6M/HZu7e40wZuLStqbdhttoTVexxXgdomko8F10n5+1Um081qpNGMPoKs6Vc3tI0mIckhclJX3Dudk3bpk9zhH8v6VBx2SbXkPJCVQVnN8uSI+/fvcb7dc72VGAz3Tk/5+pd+l3/6T77Kj3/wn9A6U1eBtivtJcElYio9c52pCVMi6kC7aKgHy3QzkFwpk6u1prYSayR9Ciij0DWc3F3yi/cHEoHnz54TQyLGYh9IlBB5igFrDbN5RVYejGe1veT8uuNHP/8hV7tLTCNpMExCEadYMqpR4Z1kHDNBJC5XlyUFkiO980wukJLASsHxsqGtNMk7Uihetlorbt0+4vZpRXSRoQ+MkyTO5+ymyPn1in4KXN9s+fb//XeoShJVIk8JGTOzxREnd+7y6uoSqRXLoyV1WzFNA3Vbc3yyYHRrhKkYBs8PfvYB292aP/rGF/jdex136oiOE0IadNVgjUYKg1SQfCBLwbgfiNWhmFRkxn6kaRtyyiipCtyI0sAQUqbvR6Sp0cJACohUGmiyKCbkjEEa+1EZqpa6gCmVJhmDqhsEJ2Xw5yU6KpQNHI0Dq8tL5ktNnBRj8ojsMULQCIMQFZNzDHFE+kjKnhgDKgjcdsV1irz/4XuYWuNCZrvruX18jyATVW3J4RBTTAGRA1K03L97j5vVhuubNU07w3nPrdt3ePMzn+HDZ0+5ur5h34807YzFomPst5w/f87pYoG2gnsLy0I7dJoI04jzgkWrirDjRqTzCCNRbUc9O8VPjuj2eN+TnABhmR8vODu7ZHe1Y3YskHXH3cbwweVADr+d2f1GLHX/T6lCX2Zd5h6k+3zjm7d5+OY3Ob/xvP/OBW0jefnkH7h1FPjX/+0fkXLg1fVTerFnt+/px4kQBJVuOOnu8ZXPf5XJb/jRO9/Dx0jKghwLJLmtLW1j0UqgpSGkwN9+96/Z9z3DgULlpoB3pdyTXPgT3ayhd6UmSZnMbrzBXezIPrLqr4vFQidkJaikxWrJkCe0EGxHB4NHI8tXN3mGybEPkbHUr2AIPDhd8MXPP8CPPSoLUkhsNxtSzty/d0qWgYvrM4ZVT0qaqBy26jg5WvDyZkVYbVkmQd4mRIGHkUNmNa7Y7SbsvGO+WNI0DeTIfhh5/eEjckg8etSRuOFquKb3iR+/e8HZ1Y5v/d4jvvXFh9xqNI1MdDrSHB1jbKltiglc8KTsyDGgD6jHfSjNM8ro0jYTJ6TQyFyyxNF5hr6nEgIlE5UWh8ZmjRCaLArxPnrHYtGSMiilEKo851ICL2qqeYdFEVzEqT2zZYMbNKPvsXUgTwGrD+hJCUILbNLkXZlzhcmRMlRR4/dXCB34zOuPOF/t+OrXv8x777zPhy+f8Prj+/T9nllr6WZLdrs9yExbt2xXW6ZhpLKGaRpIWXB5eYmxFZubFePkiQlyjOzlHpKnMYqTVvHg1n3u2T3z1iPihKM4FITOSBOpjcHUpW1Hdpb26IjKtlw8f5cwbKikwmjJ81+9Q9p7hFa4zcR485ITccTvPjxl9+K3kOzfiOVnf4AWBhkhxYDC8ODRggevHWFmp1ydXfPy2TP2m3f57OsNb772DSYf+eWTJX//ix+wHeOhXNHS1kv+xR//K/7rP/1v+NFb3+X7P/27jxppvUtUumbeddS1wuhSovno8SNevHxC2IUSXQqJGBIpiWLRSCVTKmUZRitVBuftvGZ0PcF7+pseW9csjufs1n0xBUtR5jhHc7ZnF6yv92gvUcqSgiOkjNA1FgFxohIjjx8s+fpXPo9C4IeJYdvzwfvvs91tSX7kxlUIdXKoCs+MMbKLQyGq2QrnI6t1jxSQRQBZDMRTSoxcUx8vOLl9wnaz42tf+SLPXpxxs9oQY+Rf/sv/iv/4V3/P6nIFKTGmmherwH/43tsYq/n937nP7VrQiZJYUEIhZbECySxJyZNSJGVKDVTK9PseqQsoPMSMxkAMGCUL5yEFpmlPZRUYe4AV5QLtEYLZfI5kQqoEMpRMc0zF1yc1yVbYdomQhuQ9ldbIOKLyyBqHjBmnJGGccJPDx4BpJIvFnGotSyPyLiJiwCdw45pkEi4kjKr47vf+Mwgwreb+wzu8ev6Ctqnx01j8dG3LbjcQnMeNDlNbQkoorZDacHFxwYN797i+2dC0M87PX3F1ccnpUcvnP/OYI5NYij0qOMZhoG0ttx8/5mS5YHP2FNgjRcBohTaGbAWehNUFuWhkxqRAHvYoPxGnjFE12SUapag6S6oW/MPT809yi/8/7L3Zr6XZed73e9fwTXvvM9epqq6ubvZAUhQpkpIoIrIE2UaCQHYMw7IBIUBuEgTIH5Igt7kIgiBwkJvcBAiiCBIYRoNl0RFJtcRmN6dmz13dNXbVmffwDWvMxdrd9L1lk2xwAVV1UCicU6fq+9Z61/s+z+/5O1mfiM3ONs+UZHpxZO1RYjHRoCSRpgsWXaJ77qhMU+NESoF+HHjjXo/LEdN0qBCxusbaBm0bXIzUs47d3QPOLk9gyOSU0K2i3qloO8vSD1S7OySVObs6I2K49cwz+GHi8mKJSgI+o6OCJCwvN9gsGCvYOiMq8Wu//uucnVzig+PBwwcgETEB00EygThEorTMFzOGvsfmSJUSaFtYaknjsiarxPWF5rmjmuefPqJpF1wtR954/T3OVx6VO/xU8ZnPfp6jvTnffemb+KmnxhKjYXW52U5/I57iTLBW0RjN1AdQipwj1pZqoV00nF6d44msppHdbs7lcsmwvGRmBLDoqQQ9rybNn730Fg+fXPH3fuV5nrs55+YwAQmjIkYrRAyTK9o/kYmYFT5F0JrsFYhGoiDEIkXZwhSyKzSLrIpMJ0naVnAVSooFT9lEcBtwI1YyREWiRdVz2naG0hZJkSwBbSsW3XNUR89jDh+Q33mb+MEdZkozaYVHU+9VzA4a6tpzejIRQqSKoPtIqxVjGLnoA5tRsVwOHN64zqc//WkePnrItZ0F1idO12uerK/o15mjnSMWXWC9FiYfOdjdYz301I1hHAZWl+elJeEyOo3MawV+5PLkhN39GXaWsRrqWtHOKrpZC9nTNQJBsHmb/WHA1LBTRVL/mFb1THEooU1eYw3oOhG9J0waJR6trzC5Iy9/Udn9TCzBkCjlt+RCcDPKkFMhhjStgdYgOZFzTUwTG7fm5OxDBj8xSSph0NHR1Jk333kN4sijs/fph2XpgQwbFLCY18zmDW1Xc3lxyaKdlWleBLJmd2ef8/G0JI6lXGQNWx+skpI+1nSWW7ef4nx9yQd372J0Tde1DOOmTB23jgwfHU1dYUJGXGCvqjGS0d4iujg4Jp8ZQiKExPW9GR2Bd374Ks995pf59Ke/yLe+9TJPzi7o2gXz/WMqa7l/7/7WqqZoq4YwBSrjkdyTgqeqK5q2YTFrUERqq3HAoCoWBzvsHu6Rgflsga3mTGNElOH9O3cYN2vmbY0fPWSYguCT5nIIfOfHd3n46IT/6Muf5dc/fZNb1/foTIn5K5pCS101hGSRXMKaJSVyCmjRhfzrI8H7Lf+uhPzEbTJaisXKlkWj0WhtyQTC1lKlcyLHkguitMVUDUHpwhbUGa0KcEs3Lc3eHvVOSy2R2q/xZ09AHNYoTJ0Q5WkaqG1k1gr0HhMTPoxYr9lXHbPZAjUlpqsT3v7eknHaMB4dUYsmecfN431ENYxXPc1iwXqj8H7k8OAAtVRcXV1srXyetrHkHOjaCqkVjVEcHeyy20YsjqeuXyNsTpm3u5hcc3n2mDb3dFZodM00rskpkSRzmS9JWWFnHWmcUL1HxGIrRdRA0KggZDcQhit2927xq59/8af1ev+drU/EZpfFlhNcdNGVZYVgipn+o5CXggsuG2DWZA1RCkLc50jXtfQrh5tGlusnfOObb/Lw5C7jtCIHhxGwlWZWKRSR9WZDjsJzt57n5OoMyYYcFLXtsFVDRm0b4+U6xdZAXzc1SsODBw+QSjM6jxLNcnWJcxNaG7qu5WpcISh22wXVKlG5zKLu0I0wOUjbZC4dIzoFFBGbE40xpPWKh2+/xZ233+fR3ffphw1TzFxTwvnZOY8f3Ke1FttWbAaHVoqmqjB2KtGKlWVWWTpj+PxnP8fDB/c5W12xqQxJwfXrNzg/vcSvA2094/MvfI5KKx7c/YAXn/8U43rkvbffI+SApnhxU9agG043jj/71o+4c/cBX/niZ3jxqT0OO8XMCHUVkKom0BV4ZQLJCULAGIrmLiZiDKhcvLY2R0xTE4Nn6COBQNPtsH0MSr5HjqhU5C4puEL9FY1KCV2p7YS2WN+0KGJyZNaYVlgczpHbxwzWcfZkJBtYHNRgNLWumDaWFEaUVExThDGhhhGdN7T1hudqy2VOnPcjKMWwWrGJkWQ1n3rhBX7zN3+LV77zCqsh4kJi2moY/TghOaIko00JFF7M56wJEGB/MafWGe3PqeuSlraoLbuzHWa2w3Rz1mcP6cdAUInKCLUtSW15MWO+f8T63n0kV4zrCRcc7eFRqepjJg0jOXpCgg/u3efxqv1pv+b/zusTsdkhRbiKeEihWIpQiLYoKd9i8aICWZGCcLa8oPcjvRuYBCwZyfDU9af47C+9yEsv/X/bPy/kIJik2G3n7NQWq8ElxWy2x+/+w/+Mb738Ld658zaH+8dcOzjmO3/7nW2GaIlMlKwwhb1e8mNVRFmNqQzXjq+z2WxYLS/QSuiahqEvfTyba9xqQC8TbdRo71DWMFvM+fv/+J/w+MMn/OWf/SuySsQAy41jigZ8z9nmMQ9OrggucHCwx4jhatjgw4Q2iW5WYY0wxQm3GgowU4S2bVCAFqFWCgkB5RwtmTEEsi+Zs8PVwMX75zR1y3xnjtVC11T849/9XS7PzvnXOfPmm++iJZDHSMiC1jXW1AQ38NrdC+4/eZkvPH+Dr3zuWW4fzthtMzFdYRqP1YoYfHGbpEySrbwklylmjJBJuOCQYYA0J+eqYLjEFHiriygJSPZIDKVaTKmE4cREEkc3myE6kcJU7BxAwpNzT9aaelHDtX0kraEOTG5ErEfbisoa9vZbYoj0A+zvVehVZtKR5Ca8W1JVHU29Q/KZixDxk8OT6WYdq8srvv/qqyCJBw/uc35xRVN3nJ2eMV90VNaWwCcD4zjiJ43OAcLEweyQp48W2IvHNCpjSoAwYTyjvxwgTRiK73kcHdkoDBpCZDi7QuUKfzWQlh5CCQ2yuzvMBXwM+NrQJ2GMc7798gmvnPwCBPCzscSSJQIfhRRnUBqtDSL6YyrwRxHUPnneff8Oq2GDspYwTSjJWFPRVS1vvf0mF8tLfIxEn8lesFmzqFp2u5ZJCzHDbLaHkYoUigbpaP+IL/3KF/nzf/WneKOJUyoi5pjRGaq6op11hLxClLCzsyhXrxDLlHCbTBVDQtDEKdAvHZUv5nifM0jicy98mn/6X/yX/G//8n+lj5msLFFn+mh4//GSo7aEbF9tRm7dfo4dDx+erxingWlwPH39EFMptM608wb6DSEFMnDzqac4PTlBlOLzX/gC68sLUkpYUdikWJ+v+d63XubyoqeWFrOrEesZ/EhuLK9+52Vu3rjJbNbxlS9/ge+++n38GFAItarRAqZqGKJhOU28/ON7PDm54EufeZbPPneTw13FXrjEGo3VBtEGjGUdfAmYyamAGFL5/0zeF9azJHJusE0DbGi7mq5tkBxJoWR4RBdKFohobFOhqqZATQlkIikJoEFS8ecCUhn0rMXu7NDohPE9ddfhguL88WNULewczFCrjFhF7wZCBCNQJc2QAs4P7FUWZQzL4Ilas1wuWS03XJwt0XXF1dUVSoRx3JQbgRQqDzEU+5hfM6YlDZFZFXn2sGG/TmxiZNHNmDcJ3BXLi0dURjFrZkx9xo0OFSHoTHYRawR/ueTiwzVhNSFDIkVIi5pNCDT1nHbeoheZ2GROTmGl1oTmFyHZPxMrS7EGZRIogxIQMaWpTUnrKjigwlDr+w33Hz5gNYxkpUlJ0GK5deM2v/P3/gHf+Os/p5+WBB8Zp4EYJjqj2F9UHB/s83DYsFpvmO3WrNcbnn3mWdJLiQd37/O1P/pjpnEgRF+Ss1IihoxB2Fks6OYdfotJuri8IPhiqp+mggeqqobgS7KXypBCIoliFCGiytQSy//yP/9L/uRP/l+cK6lj146vU4ljiJHLWDG5zCZqUJZrR7tMER48OcVWDYPL+GmgtoqAwlQzQg5klemnibrtGPoN9588odbClCFlhY6aLivOH12So8YuKna7Odf3DxiGNVkl8rZ6OTw45uLsHGsbBIcSoaoKul6JIgwDIWWmAO9+2PPw7Me8fv+UFz91ixeutVzb22Gng8YmlI0UP3omxp9sdpWxxFjACX5yTFZQxrJe9rippGxVVSbHhPcOI4LSFmUqsDViG3Iuz0fKGW0KXiqkEbIjp4jSlmq2ixsnamOwqWfyE1OIVPOOWjS2DmQVyDqzcImc1yQHOQlNEtzYM8+aRbtD7SNnMYBTRCds1iNq1rI3b1mvB8YUOTo6wufiXV71FyjtIMDuvEENlxx3mvHJe2xaw7VrB3zuc59muDphcwbjZeH99bUjYsixZZo8IQXSlDGqhC+FANELOtU4F3E+YM3A9eefRRY7mMWCndBS6TN2j59we8f9tF/zf+f1ydjsUNvsKg0qb+G1/zamQT7+OefEyZMnPDk5YdX3bFzE1g0pQ9vO6DcDp+ePSWrCp4APA0YCO/OOw/2GnZ059zZrxFiu33iKv/jXf8nD0/fx0fPM07e5/ezTfP/Hr5JSiVmMMWG0oataXnzxRQ6u7fPKD7+NiNB1HUM/YY3QbzYYbUrANQW2mWLxeY4+IFGBd1S24pXvvcaZe5X16pImBbTSSPaYSlO1hhe/+BWcm/jOS9/mYt1zc2ePrmmI04TzlhxWBdt9uM9m9PQjOCeF5rzaoLViM0386M23mNW2YNhT0WmRMnUypCxsNj33PviAsw/v0c1atFEYpZnGQF23vHPnAZsxF+Q7ZdKYlS49tJzK4EY3uGwYnOPivRN+fPeE23sLXrx1zGdvX+P28Yy9uaHrDMoowrZK/8hGhioIqRiEaSrgz3a2g58CYz+iRKMUeB8xtS1MwSxobQmJj4XeIGjdABXiC07LqpKAlkwLpiXbiNUWqzJqHNGLBTpmZrOEbQLYgSlEolszqYyiYpwii5SwziMRdFsjQViTmWIm6IpsNethg9WamBQp54IGI7PYO+Di8RN2O8tu16LSirkO7BihThPTmHnzjTfAeQ7bGa5fw6hgVuFUQlPRtgtycAQ3kolU1oJW9FNg3AQIFhUUzdRBe4w9vk7oGgwtu71mb1cxyM9/BsUnYrMTtqwtMUjWP+HAbc33BQ+ZUNtp3OPLE076C5bTEueFFMErw5B7/uKlP+LRxR0GAiEJVlXMbeZgZ8ZsZ47ebXAPoJUFv/PV3+LDD+/x8Owt5qblN778m9x/dB8JFpObbVYAZNFMSXh89pjHZ/eYhoHd/QNuP/0sJ0+ekMaA7wb6acLHiLIVldaESYHNhBAZc6atWlxSTOPIph/oQ2SVCprJ54k6Ky56x/3777K3f0RQmrtPzojKMvUrDI7NtGaKFcbWLM96JucIzpcIRR8wQ9HYRR9ZT5kpampTIdEBhafmci7+1m1ITyGsOLqu5uTJCe+99wHDONEPiXGcthWSJkRHdiUmkui2NJZIloQYSwiK4DPvng48OLvDG3cf8fkXbvLZ565x6/oOu7MGYtG0SSwIqqqeE5LG+4w20G8cokZiyKxCD76lW0QymtEXiUttGkw21EYRxRX8VqxKLKbJoBrIhUqScwCJ6GqGDxmpCxZr1gVUjMRxBOtp1MhCGzwTYhzL8xU5CFnAVhbrhCiJxgTmtWFohX5hudh4fAajEqtpAmmQGJm3LWeXp1z1l+AdnRLy8hH7ZuKaNRwaTS0ZPV3RMOLGERdnoDTt4XV01+LDiIqeIUaGbNk/fhY3CFcffgB4Lpxm/6lP8dStW9x95w18UpzffcjNwwVmp6FuakxjIEXmtvqpvNt/l+sTstnJR8VbCYSRjz6iJFKrks3KNpN1tdkwOAdKo7RCW4MqEAsKAAAgAElEQVSxDWKEzdWqXEFDIoVMrQSrhVnTcnR4yCDgY6KpW6Zx4uH9+xjRXD845pd/+bN886//DTEUcSyp9Lx9DHTzOXXdsFpvsJUl58y9+3dRGYZlT1M3DM6htcG7iDWWRKadNbjQ00+uRDdmhZsCg/OMMZYshaouOjgRlDY8Pj2h94E+BHofeXh2TlcZqtkCufKMw0AephLIHSPBjUhOHM466srgnNv2sMCNE14ctVYYI+RUrkHZTWRK5qu3hpQ9PnniOhNiJsREP0VciB/jpbZUUlIIaCn4dy2qBHBscVbOBybKdfTx2tO/8QHv3LvPi5+6wS+98Cw3djusCComKgUhrqnqtmRkhEjGs1ktUaJISjA5oK2iaRts3ZGSEHJiSkJraopwxQAJdIWYComRHIUssQSl64iuKvKgCDHTtRUxF49p1XR4tyLkzGJ/t0zc64qm6bg6WyLiCQGqpmIMI7oWaqDOmV1b0XWa0WeqTcL1G7JE4iik2GC0IqNZ7C4Ah+TIfNYy6wRNQAHJO6bgCX7CjyOialYxEk7O2akWGCucDj1j1/LV3/4d7tx9wvvvvU4bRqSZsVldsr6qGTcXSJ9w2cM7sKdfQA5rlquR3imwe/8hX+l/L+sTsdmxvfZtY2HgJ7XddudLH/++D56HHz5mCpmQFaARMSwWO5iq4mp1SQwRFaFSilpFDhYzblw74vrxdV57+AAXMy889zxf/pVf5fr+Pv/7//E+SmXu3r/D3XvvEaIjxFBS4LPG6pq2nvH7v/+f8+2X/pJXfvDX1E2F8wP9ZmBYj5jaQhZSLOJlP01kScWf2mi8E4Zhwk+JyQVUNiRRZMkM3uOipc6CEcXae04ffsjKBa4GRx9hbzHb4j9D6dn4idpadrsGO7clW7YqKV7jBCvJ9C6zGtwWZ26pbWHd1ShaUzhvIXn6fgSjEKeJCFk0PiacK5PUYqtTaKVQlGChHLfkZQGjy7VYG40VweeEF0XKhuxhWAae/PAe7z284gvPPc2Ln3qa0A/MbKYzcLSfETRaNSgJZD+RRBGVMBCJCmJe0KmGup2jRIFWZF0jxEIslkTImjSVwG5ja4iRmAMZg67K8CP4kRAD2uji15VQKvFZQabbtgVV/g2UtqyXmyKDyULtVKmNtSrpacqXDTspdruGzgQerzynwwXDaPBZo6ua3XnHftuh+sd0bUXXCTZm4jghOZNycYZUlWY+a5h8Ztl7Li+X7CxKlOd5iHz43l1O75+gUGijaWpD8D2P7ryO9huMBesy4QTGRc20ER7cO2H0pa/7874+OZsdH+WwFnxT/jgJKwGFEplS4HK55NHjE3yEnA3GVDTtnMrWnJ+dFtx4zOAjNZaZ1dy+cczTN6+zv7uLv3cPFyIxZNpqzhc++0VaO6dPI9///vcIsdi8JJQrdM6CnwLr5Zo//qM/4nz1CFsZYors7+6zTEL2sBlHQszEmKlMhRsdkIkqEU0mtxqfMkEJ2RqSE1IC0QaXElOM1BGiwMZ5lpuR9RjwWVivBwbnOdzdQWmFsZq6srTWUKvMrNIc7e+x2Jlzdn7BMidUBm0yMcPoIqay1HVFpYXoR0AXsWqE9eQYY8RNkYgipCIoFqULQBTBaE3XNigyRmvGcSDEEg+ptmV5Srmg95JHMGhtiRTBdtKGR+cjl1fv8MN3HnC81/LcjV2u71YYo7h2eIDoAraMwWNNyb2NIbFeBxJClopEhW1aRAkuJCRnlK5KzGUqGj5SybDNaJJs9XoadOUZnaMfJrq2paoqohJU1dCYlrrtULVjnmFwAZShmc1w41QO0KFISIy1KB8IIaKtRkSzaA178wNuRc2dx1fcPetxqkbXNTf2Z3RqorYd1w4W1LnHhOJSyb74oisLWiDGkXk7Y/SJMz+gQ6TejHRiuP83f0NDy/XZvAwvlGAkYyrLbHeP2mZSnFiePeTeeom5PvDe22esNxP7s19Udj8TS9BFR0cJjoGS2MVHpx4RsifHwNnZGYMrgEidywOzv9jHVpr7Dx8xTJsC2oxCrYX9tuF4f4fbN68za1rGwZGicPP4KXZmuyzPT1ivRp79peepjKHr5qz6DVBCtK2uGL3DTxOPHz9izCt0FQkhslkNWNPw3HPH/PjNt+lszeTKFVpyRitAEqbVfPqXPsMbr7/NejVgEihXEmdv375NK4r1g0cMHtxmYOUDdbfgudtPcf/+Q1aXl3gfWC6XRUxcmYJ6V4Ixxa/rpoH1ZURSQm+JfypnZm1LVsVANriRtCWll0mKUNcWrEWFgITEFBI5eGQrB5Ftta1IBOcQioTGe0+IkQwFsoAqV2QBLRliYNt8KBtYzuQo+ChcnW64f3LJw9MLvvzpW0w+0i4OqDu7DQhyxJCo6pq4HYQEF/CjI/hLqnakmTVIroCAofhGTaVIbkKk2F6Uqcrzo005GGtBD4718pLkJ5gprK2oGkNWmpAFakOzp9iLcPnkhDx5TGVYr1bYVCPa4oOnriusVYyDx/vAbLdjZgy1C9T1Hl2teHTe03Qti7ihShM392fsNAobC1giK4NUCpU02U8QIykGxqHHZrjWCspPiHNEpRHl8X6NriuUmBJVKRljMrpWDH6Ard1SJeH89JzHp+dcriY27heIp5+J9dFLUU7jn8xes5QMB6EkZIXoePThh/SjQ1SF+AQojvePMJXm/TtvliZbiJissMD+rOXG0QHXj46KD3Xy1FXD8dENgkvcv/eIYfQsdg5YXlyyWg7Eou8s4uaYqKzhmWducePpQ9764AxJmb4fkErR2poHDx/iJsfO7oIYYIzjVi2TULrYoka3QWxicdgym81xSwcYroZLxgBagY8ZH6Ge7/J7/+L3+a/+6/+G//6//e/4xp/9KUeLDomO0TmcD2jZip2VxsVMHjz9xqFNCaYueKpUpBe1ZQoen2Jxg2hF3IbpaJ3xMRBzRhlNYzTZg6SI0bKNXjRlYuoTIuWqLkowxpC22bg+elLK2wQ2IaeimWzrGqWlDAqU4CO4ZEpo0OlASA/wL9xiZ2fF3v4B1mx7geqjFobCaF1Ybt5B8IRpgx80u3s71LOuTFxT+TuVa3eCnAgpYmxLNoqQHbayzBcCyTBsLulVpMmGpBTa1Chjy9OoLYsDDQkuT07AJXb2dhnGkXGcUE4hyhC8oG3DNEUCoEmoPKHdwIGdUF3Ahwsa17I7M8wko3ykMhmMou46kiSmzbrkckTD2DsmN2LEYkhAIIkwpECUVDqUzpMTaO+p2pYxZVY5gWmIpqJrWiRZnpw6Hl5tuJiE3ebnf6v4+f8OYFsRbEXDwvYaGxEpv0LYnngDZxfnTH4ixohkxf7+Af/oP/lH/NVff6Pw0rafprGGva7l+PCAm9eP2dlZcLp0BB853DvkmVtP87Wv/zHfe/Vl9g8O+Kf/5Pf49re/yeylb3O1XhJ9KnkTziGxCHiHYY2xBq0T1lq0tixXK5bLC0KIrNebLVOvVDxaayRnck5cLi+Y77ZopYvEgwrvIY8Jayybi3VRcoghRGEYHUYbDnZ32Zt1PHPzOk/fPOb1d9/l8uKK1WrNxjlStDgFlTZUKOI4MIaAS4LPggsTQwyEbXVG1oStqwEBI1teXwbI5BDYaWtaaxAKEr5qWi6Xa5yLoExJs9e5OCNS/MnnQ5BtFy3lTAqZmCaMEYwGaw0uRMZQRLcZy4OznsqcsL/ouP3UdWRWYQS0KtQQpTUql8HUNAwAaAPJR077S45vP1v0mEaTc/kaOcVtnKElI4SQyehttm1H13qmoWeaIsZA1TWYqiNpUyolazHaojKQEpcnT5CcqJqq9EWHkZhBV5ppysyaFmxDcCMkjzQGv9mQTWT0E2oqqKvVkDFDRXO4S9uUQ2gIxf1SYksyohQpB9ZhRBCauniEO1OAnFM/EqNH1TWq7kjVDJoG0zUkJZy5ng/Or3j8+Iy3Hm9YJkuyNbr5Rc/uZ2IpphLoLMVCBBHJDiFBdEiMSPBshp6z1QWewBQGlFmQSbz53pu89e47pAyTi2gyjY5cm1lu7S/Y39tHt3OGq1OGCJOb8GnNd17/Bm8+/DFPX3+OH738A/7wa3/A6dUTQioYcSgVF2Qenz1gHVrQmby9EUyxx+Ow1jJ4z+A2iDJkBTGBDgljNNoWiUTdtRhjOdg/5Cu/+lW+9kdfx02e3nkug0dNCZ2EiZ4/+IP/m7d+8BqrJ0/YsZq9WcN/+h//AzarK/xyRdSG3ieuxkhAqCroVAnijhg84FJidI6YMnVVUrOzGHo3EXMGlYoFCyHmkjt76+iIX//8Zzl/eJd+3OBTZAqBWiUcEahQpiLgcWkixGLR0kYVSUrO2JiI215fSJFpSgRjcN4DaRssHsgpMmTh/bORp06uuPX4MceHuxgJzNqaXaWYVQ1tNcNYS0wR7wf8tKKrBdevCKszrAJb13ggoxFVk2Ih9WbK15EcmMZCTtEaFodHbJZLsrJksSQMYtrtrCwiYtApsyDjgmPcrCEU+5YRRfqouhKwtsJqg7ctWhRGtWSvaWTFkFYoP6KkaB39KnEWI7v7FbUvzZuqUljTIVnQGVzf068HnAtkHUkWVJWYdTVNMtAYgj3knUeG1+5uGMSBWaM0nKwcy3WPEkNQC7SGJiXWl6f/YV/qfw/rE7HZsa0gtjUdaosoSikQg0flQjV5cnbO49MzVpu+OBUyKCu8c+dtTs+fEIIjRk8tmsZaDvb2uHnjKfb2DmjbGdP0gNH1bAbP3Qd3uXP3Dr0b2YwDYoT1+orJDYVFpgqVJAtoq9nZW2AazeDWoATR5cqkdEEZKa2o65YYMt4FcoxFrqGFJJnj68eIUqxXaypj+P73vksMDiTRT44ETCGAL1eVs9Mzvnv1Mjf3dlnUirMnj/nD/+v/ZLUeMEpo64qUFWM/MjpPPwVWqliC1LY6Lu6EhDWGnXlLUzeslmtiSrgYieSCO1cFtkBOTOPEvQ8+II+bQuzYbmBVXZMGzzQNlOOkVHNC2eQ+/iGCqsqkN8YyKMmqtCKQjLV264+NFHOMYnCOH71zn3ln+ZI2NIw0Zo8YAt47NjHSUvRuu/N91qvMNKwwdcvVao3H0IrFdgusqclxW97rsplkKYOFi4tT8CMH+wfUTQepeG1LmJKQYkCUKTm2VYvKGSuCZFhfXXJxeUlMibqqEOuJMaP9Nl5XaWxdptLRB2azGovHSiCPA4mItgpbWUxtMbOK3cMZ+ztzEM00efzoiZNHK6jblr4fCGEs0QONJVWWpFpcu8+ZW/DXb7/DnROPU4asMkaVfOKcEvv7++gYGYcRUXprz/v5Xp+MzU5KdZDlI5dEKGQMUqmsErgQuPvgAcvNQMLgYiJmR0iO117/AZPfkLPHKKFRmkXTcvP4Bjdv3GQ+20Eby+g8SWC2M2Nvfw+fwseb2Wbo2QwrRIF3ARHN/sEh69M10YcSz2csOhuapticjNLUbcvOYsH55WXxvxKJU8DkUu3kSoERNkPPfD5jMeuQFFmv1iiVMVahjELVBlwkJpCUykw6BqIf0U1TogqngehGFJnKWlwUlAqIghDBZUNKHskJLQmjMsYI87YqkMyxJwQHUlBIIW2n3kVNgVbCOI4slwqTPNoYRD4iXOWtJtASfCb5jFK6yE2MRanSaQ0xFv/q9nsg549BnTEFUvQgxRooIqScEIEna8+/eeVtxmniyy9cZ9EO7O7sbkGYhsGNuOjJUqONZVLFRaCNwvmIv7piLpoYPGarKUTpcmCljK0atK1Ba1Tdshkd4zQVIovzzK2lbhqCCBnBx1RGuKbGdAtm2hJ1zXK5QuVI1SmGYSQFmEZPRqONLa0E7wosIlm6akZyFIFMbbDtjGs3bzDfn1FXkZ1W0dQVwQdWlysuTx1JMjkZmo/iBZKHyhDqOaNueeh2+JNvvc07DzYMuSXp0uckBRqJNJWhnxxt0xDzVHqe+RfpYj8TKxN+IlrdauyUCJIzQsLHwHK14u7Dh4wuEbNGRJH8xOnZCSGGEnEYQwnTAW4eHvHMU7c42Duimy2IyjAMA6Nz7M9b1sOGyTtEl0HI62++Tt+vSuYrAMLl5RV+cHRti6lK8uZ8Pmc2a+j7DTkJ62FDToFxcojSW2ILhJSIWxhe09TEXFLAmqYm50jKkUhimIbS5yOCyigDZhsKtOgqjMrUVpNipN8MRVWRKZo3pWiamt5HRECsxaAJ04A2hqbWHOzt8vd/+7fo2o6vf+3rGKuREBBdpt45l6rLaMWsrWkrjWiNj55p8lgqfEqMziOqnEYiCWsNWimMMezv7+O9Lyli44Bz/mO7nNWCVoI2Qs6aJCU8SD7qEW4rDi+Wyynx6hv32Jt17CwWbKbIwmZsbdFa4aeR1WrcDn40WVVgFLZpyapMqP00sZkGUs7UswVN3WJNhbWWvcMKJZlm3mCmEWUq3GbNNPSk5Yr9pgVjit2PImkBVa6tYmiixkWF91OJUDTFLhjThPdlyCNa0y3mJCtUOpG9plIaqVNhCV67ztHNW3S7LcEvmZb3Gacr2rnh2qIhmw360jNNiuwaTDC4CLSHbJjz7qMlf/7dH/P2/R6fZkwxk4NDJH8sNzJZMFVD0y0QXTH0Pd7/YrP7mVhpK4OQj2QnSMl9yEKaJqZx5OTJCU8en7Ja94xTQCqDZLDGEKPDO4fNUItmp2q5de2Y64fXtoDKmiya1XpDcODGxI9++AY5CYkSotI01fYqV/JaUxBwhUdmrS4csQjj4Kirmuduv4BkOH3ymKvVKQ7KMINyimqjEKMxtrg8siT6YYOZa3wooTJN03KVB5Ai3E0qkyQys5qdruXW0QF5GqjriraumaYJFwIpF76eUapctVTGx8SssZATmzCiRNDGsrO7h7IVPkZMXaG8p20b4lA2WaOFylbs7czZnc9orWbqV6zGsUxdpxLXGHIqDYbokW0WhFJQNxYfJkIMDGO/7XVu7X1SUFNaQaWFnFU5mASSKodbVhnJmZCFlOFyDHznjfvMdnapuxm2sZh+VRr61uCmRCJjjMU2HS5H/BhoGkNKiaqqUCJlcjqUYPNcVyhtij7OKlyKBJWws11SKnZAHzzL5Zp2PgMlxJxwIZQKOxedYNYVyrYkn4h5mxNBRc6GnIai7LOGJIJuyrVSUk1deapOOLx5yN7xdWzXEjRkZVB1RYobxrhGUsC0kYPZLpfnDgaLyzUw49x1vPbBkr946Q7vP5mYgt36lAPkgm9SUiAJLmTQFaZqOTi6zp07d3Bh+Km9339X6xOx2eXtRveRBEWykFNJrUrjiO9Hzk7PmCaHGwsyx+qGxmhsVzGNPRqhUpZaFIeLXW4cHbG7KNdXpS3RBy4uLslBs+gO+fUvf5W333uLJ1c90XuMLl8z+LSFEOSSOKUEa4VxPXJ4fIAyQlc1SFK4fsQPHpXKqdo2DcMwkQWSCNYorCmfy1hDVdfs7O1w+viEdT8R47bvB1gliAGjLM8eXGNWW7IbSdHRD0XcvNmMTL4EARlThLOSApUSqq7G+w3eB1otIIpxcLx75x4PHn5I11T0mw1sE7yMohjldWZ30bCY1ezvzZl3HVdLQ+8868srYi5VY1VXSAJyyc7NkonBsVpO5ZDYro8+FsqGaHTRAyoSKRd/s8rleqv+LYSXIeFCxlPz/unAX778Ok2j6WpgrojOUCmFNRYRjRKNtTW2sqU/iLDpRyprtj1VjdUaJZm+X2NsjVQGI5akFCFXzBcdta1ZX54TNitCzHjnyxUYUFtIQXlGFcY0KOXQOhSLXio5JWrLnQMwVYWyFmKFVwqSRdce0wmqrshGg9VEIkpZ6vYQpRRhOmccPFkrQsrMdhdQaYap4/Gy4W9eP+GvvnuHk8vIFBtENyix5Awhuq1Ey+BDJJN4fHLK6dk5WutChuYn/0c/r+sTsdkpsQWDDh/bxnIuvbMwTWw2G87PzokucP3oGLN3yDvv36GqhWHTQ4baVtgMna25/dRNbt+4yc58D21qJGf8OLLcrFG64tlnPsWvfunLfOfVb3Hx/UcE73jl1Ze3D3Zp8lplECmbXVVb6tmM3/vn/5w333yd1177EccH1/m93/9n/E//4/+Anxy1rRicI6fMfD4nhLQFN5ZKLyZAKx49fowbPTEVQECIHpUV1ghN2/DsU7doQiKOIyF6Ypg4X6+Zzfeo6hatFP3kiT4SYyRFT1dl9vY6tFguV2uSaLxoTq9WTC7ig2caxoLJyom8FR031mCbjq985df47d/8Kn/x539OJpNEWOwuqNoW5yfMloTc9wO/8ZWv8sor32M5bPAhkHMJK08xFa8ubAXVhSBcWYPZDjlCKnIVjSCiS2o9ZaBC9ihRjEkI0XD/yRV/9bc/YFZ9meb2DnHcoFOgqmva+R6mLRPYat7RbP8dvHdMMWLFUlVtQSUNE6IMYkoVPA4eTJFzDJNHJcjGIqbGeYdMRZSbySgtiJRUspwyYiz1bLH1MGvi5AEhpoxzE2mb79t1DdYaKj0nBUeWDT4mrq4cmJE2G+zcFklMbIipRZk9bGVxblN8RFrhVcXjHv7wL7/Pd9+8YooNMTaIqI+pQBm2uR+lWAixyLgmH5GtqiGTt4fuz/f6ZGx21JBzoWdIYZ0pURhbEW3LZrqk35Tsy5AcJ/fusVleEWcGlzzoImIVEfZ2d7h96wb7swVW1SQNEtfoYVmEr2R8HHnn/ddZLk8wIhwdHfLeuw8wAmMsVA/xCZUyomBwA8dHt/jw9CGvv/0aN566yXK14oc/+h4JzzQVskZGCD4yKc/kHN3OHEzxMbrgYNPT1V3JXVCOlBzWbCWGIVBZixJwKYIklAGtM1UtrPslJnp8DIw+EUPpaS4azaJL7HWBRlUsdMOYhQcXSxSlj6iUKRVASqAEpQSrNLUxzPf2uXl8jPgBN1zhkmK9vESROD4+Zj6boTMsz85pBdzykt3WsrN7xK986Uv87Xf+lkcfnuBlS3UWodJ5C1MVjMSiIYuJxtoyudzyB60pPbQUXcHeS8aSyzQ5Gt65v+Tr33wL92tP8/xxy0IFejUwBM1Bu2DVrzisLbOuxUcpOa6iaNoZWmusbZjMxGYYGDdLal+jUDR1DeIJuYSGT74MBbyfCpbLVGUILRBS0evVdc0UMtZYggi26RjWG6bNhrrrUES8K5uMC8WfW+Q+uvRElUIFWJ1uCC5ixoqYIq02aFlArkmqwnYt/eC46itefWfN1775Hq+8v6EPc3RWVNmTVARdfC0ihcStjNC1hqGfSBlCKCJrEVCSyeoXDoqfifWRH7aUdttrkIDWBqVagivoHzd53r/3gEEUpq1RWai1JUkCSdTa8uxTT3Pt6BZtu0CrgOQ1wS3ZrM7JqScRGMLA1/7s67x79w5ZZfYPDzD3nhBTLKLYEMoDCSijUUZzeXXGX33zG1xeXpAT3Di6zvd/+D189NimIuaMm8rAw8ewJehCSkIKkZgywzgUqjHCYrFg7Ee0MR8HGAfvubw44wuf+SX2Zh3vvv5DXA4YZZDNxLrvSREW7ZYS4hw3DhZUCkwuTo2dusGvepqqxmw8eXslVwZ0LrisGCOBTCWaWgL33/oB4XQB4xLvoZLE0f4eB3u7GK1Ynp9TJYdI5MMP3qRSCnLLtUXHU4eHLM8u2IRI3kJWK5VKTKWUAZMioUzxqVa2JrlEVkWmcevpW/zGb/wqf/qn/w9+tfoIeUPKARcS7919wJ9MF/zK89f5/DPHdLVmx3iuG8vm6pKuWlBVXaFUt6WqMTYSgidFja1qZlrjfKSpa6ZxYrm8ojGQyMToSckTxp4aCMETgqdpa0QrrCrXZh8KdzGT0dYWWyCQRFG3FZI1SNj+GCGNJe5RNNbsIGokmYFpWjNcTLTuGrZukcpjU40WYWLFJlT88J3AnQeRv3jpDu8+XOFzXapfImkrp9G65LJYtcVjqfz/s/dmv5qlWZnf75329E1nihMRmRE5Z1VWVRcUNA2oRYFpWxghgX3Vkm8sWfJ/ZFvycGEhC9qWLLeNWqYA03bhpoCGLiqzppxjjhMnzvCdb9rDO/ri3SeqLnwJdGWqtpTKyAzFiYjz7b32u9Z6nt+D0ZKgDN5nUXW0Hm1y0Lb6aRv7k3GlsciJF0uKDPOMSZCiYbXcsVntaDc7ZEpURlGVJcc3brBpt2zbDUZqDqcz7h7fZn92hBYV0nsQa7rVE3ZXawgWFx1RJlbtiiAz+fjj+59y+vwUKQXRe+KoD1NSYsoCXWoinm3bg4zcffVlfukf/xLf+Fd/kAmyo+peeD9al8gzo6JAl4ZIyMWzMGgtETGx3lwSYzata6mJBETKCrbj4yN811JUJdENiAiLecN00hBdYDYtMCriu0QhLMJLpCoQSnJwcMBmCIjUUhlNqYuRTPLiu02MEQEUWqH8gF0vebI6QaTEvJmDrvj6P/2npBj57rvvcXbyjOQsZWGQIlIVmrouePcvv8XV1YZFWSBjpBsGlJJUOlGY3DppmTEBKWTYZRQG7z0e8MGz3e346JNPsC5ml8N4QwhpkEYgFNy79DxfP+DB0yVv373J8ZFn1zvefOWYurnClJFmYigNI/sQICKlwroBoRSz+TQHOKVE8A477LiGT7jBjRSXlFvzdpc9vlrnz1IybpJz0ZYyp8chJVXToJVCBImUkcJYhr5FyIgaU9dSGhhixA4F22HO88uebXfOS7eOeeOOYVYoZEq0oeHTM8/v/sG3ef+RY+chpYaERIisPQ1KZMVAyoHfKUaUTFSl5u03XuX02QkxRNxgadsWqUDqhCk++6Xis/83gHzjpMS14QghRuqJxLlEijntPVjHtKqxUtCUBYum4fL8FJMitda8decuLx8dMStL4mARyRHaJWmzQftIhnlEetfRDi1oSD6xt1gwnVzSb5dAbjmypUsynU2gkKhCUeia9drx4ccf8fzkjN1qRTf0GfAocnsYUkJrTVmWEAPB5z9Fgv0AACAASURBVBOEkirbyFLeToboaZoy58ralJOjEjSl4atf/Qr3PvyAeOcOceh5fP8BRiuC88wXDQf7NSL1RAubq452yCDOwiw4OLzBunM8fX4B3qGloq5LZnVOpmK0eDnnMSYTR4K3BN8jyoKyKpjuH3B+eQYxsNlcsd3t0FIzXUx55bVXePL0EcSchCZjRMaISRGXPJU2zBpJWWjqqhjdC5BiYnAK5SRKKNadI0Y4Pz/j/PwZEsHB3iHT+YyHj54w2J6iqKnrkl0UbHYrPny64dlly+t3jrEeZrM5zjygdQ03DhdMqhKlC5SpkVFRVBodJS5BTAF5DeLUC+xgRiF0IjjH5nLJbr3O3lfvcNZSVTXalJlaHRVJ5qQwN1j6tmXoeqqiyHo/4xHJ43xLSjti7AlOIdDE2LLzUz541PP//PUn3D+9YtX13Dxq+C//k1/iZ75ySGEiV7s5f/xv3ueHJ5arJPBKoGLEiNwMZ8mVzhvYUcPIKMJfTBu63YqqiBRGQSzp6kBIMARPPfnsl4rP/t8AXnxuue2L+c3OeEISUFUl+4sFB3t7TICtz8j0drWkNoqUEgfTCa+9dIsb8ym1dhS+5+LhY9r2MYcTQxoKgsvpVk+fPuZqfZXJtpI8l0IQQkBKgS40hMSvff1X+fXf+A/5b3/3v2fXb/CxwzmH0VkXaENuTyfTJg/gXcaEzyY1Vd2w67OXVqosa/HOZn9q8EyaCiMr3C4w9A7hPEZK+m7L//r7v4cCJlVJv1kzdDuSFDRViUoDBInR4EQOTy6bgl0PRTllu+1YLVcEZ1EiMK01s0lBlW0VZCZgJDqHSIm6mTCfFRSywNQlv/qbv8k7P/M1/rd/8ftcXjyjKgKCzIQbfOKL/+hrfO2Xfpk/+8a/YrXMOR/eOkTyzCcF81lFXUWqqqCuCgqd1ftDZ+m6gBoChZZoadjZyOA9IUSEkLx65w6T6ZSTJ08IQqC0xkdBVVToFLC7yNkusPzolM4LXFK85Rpu9hl8Oas002aCNg1JKHS5Q1cVsigI0WOqBqnIrpaU2/s0YqlMkd0n3npC73Bdjy06muk0A0N9uu6wiTHQ73JGL1KABGdXBJfT8WDAugEbJT5obIL37z3nD/7vT3hwIWgxJCO4Oun4l3/6A9biC0wazbvvXfInf/YJ60HgpcuSlyRyzsqo/Us/hs2IYRRdpoAbenqRKIuIJqEVCANuRHVNJz+NUvzJuETezkkAmQNWhJBICVImJtOKt95+g7Ip+d5HHyFMwWRvwra/opAJhOTN11/h7u2bzOoSGS7oVk85f3QPNyyR05qNmBOCJaXAxcUZXd+hdEIEz9XlJaUusgvABSZNQzd0PHjwgD/6kz9iuVrh04BUISezC0k/OEAymcwgObQylAXMJyV37txls94y2C3JW1JK9DYwaWqqwlBXBUO7o2991qvhR8tSotCaod1RKM1VuyPZgaYouLG/R2U05xennKzXzKdT+t6x3g6EZEii4LXX3+bZ6SnbbUsKnqbSTGrNpDFoKTINI8DV5ZLBJtphRzUkSjHjcF4y25+xO3/Ikw8TRVwz0y3lXNIeVJxd9LS7LR9+8CG/8Vv/MQHFcrMbvw9QGs3B4YT5okZrR1FkuGSGfipsZSh0h8JTKDDaME0FgQwmsCHw+MEDrLMZE58iwXuKsuLm0YJJdczDBw+5uNphk+C9T854fr7i40+m/PLPvUN8RRHmDrvtUXrJZDYjRJ9pM7qgqCdIkaUkKQaUdDkHYxgI1jFsdxQ4SglRFNkfGwP+BbcvazBTjETvSdZiVEYzdX2H82uiC2ghiD7RdZ7Oa55dbvjup1d854OnnKzBqRpiQgeBTIa/+eA57z9e0kwqrq4s3SAJKMSICRPS4DGjG8VjcLmvjjqDAwQUpqAuG2J0OTZUaZqiwAhDO+TgqNL8FATwE3LJEdL5I71d1qpl7+t8MeWoP8CUCpsc3/nhD9iuO7bdFcjE8dExr95+icP5lEp7UnuJ70+YLRy+z07bIAWlIueQSk+h4ovj5N7eHo/vP8uJYMiMHE+Bx08fs2xXpOiQ0mN0we2X7rBabtCF4qtf+xne/8F7tNsdqlTUUnG8v8+dG0c8T5GuV7ShRyTFW6+/QdNMeXj/PnvHhzxebejaboRgOgwRJaDSkv35HFLCtR11aWhEZKEjkxLiZI+TixU0t9jZDb3aEexADD1/+s1vYq1ju92QYmI+m9AUit/57d/i0aOHPPjkPkPfIUXeloqUCK5H01BKz8IMtKfv82j1gMOJZL9q6PtApW9i1DknFzu+++7f8vG9T1ltVvTWk6JHi1xY92eaxUxT1RpdGIS+ntdFpJC4LmKkRRqDSIkheKKQUAgQmt5GOiIiJrzPli2BYLve8tZrr1PVDX/zne/iB4dNhgfLnuWqZTsI1ttX+NKr+9zcUxTK0nctejZQlA1VM0dLTztckZIfg6tVLlo+n8YyONMhRhhrSJl6E0V8kYBmlCZEi7U77BDwwhCsIKWeZNc4H3CmpPWKs7bm/U8v+Zt3H/Jg1dPFRFAFQniMUBndmAQDErsTnK2HcTYYEEhE0iPwTEHKoxBStgUaLRBSImI+7ympmc33aHcbAg5VTJGFod1est31RCEI3fDv9Qn/u7g+J8UuD3yzhSiOhGKyHMEoJrMJh/6AqjYM0XK+ec6HH39ISo753ow3X32Fu7deZlo11MbhO4Gsa/REE4YJUcxA7LP/6Rny/IRNe4VMgkKXRBQPHz7mcnVJIIt8L88vMKIYT3ECRQ4BMspQlw0r1lytLvjBD5eURnK02OPm/gEv3zjm7TdeYzqd8OxgivUr7p/uQCR+6zd+i6qe8vv/4vcYes/+3iHL58usQVOgZWJSFBwd7FGqguAC1aShJlDFgVoE9kqJ2GvYOI/XJb/+O79JXTf83v/w39H3W0LYsdu2iASz6ZRJ0yCS55t/+n8hpWK33rK9WhF9JPmIAkRMOUICj+uW7B9MmSwaZFUTkmboPc20pJpUFPfOUMU+0/2bRPUK589OGDZXmDSwmGoW84K9vYq6Fui6gEJjvcd2jiHEsV1UZNzcWHRMRh1Jo1nvBtQuF5eyUAQbWS2vCM2Eb//tezkLVngEFp/AC81FtHzv6TkDgWcXl3zxzj53by+YNhHZXVAUHdOppypbhARtQCtBD6PpP5FiILpA1w9strtcbDRELwlSI6UixEjoB5zd4n1HshCCRghH8BcQOvpoOOsKvnt/w3c+OufJeccQFL0wJJ1NxkpIkhIkKce4TU8i5/LGBJE8v34h1E65AENepgmlQSp8CIToUVLigme5XmOtRSSbfePO0lQlzWzGdrXi6uz038uT/Xd5fU6K3TWW/TpTYhy8imwLoqqZzgK6UNzVgtZ2dLuW1WrJ3Zde5q1X3+Ro/5BpU1MbTzfsEXFIPKqO1JMbGLnHdP8RMZ4gxGgQR6JUFjTHAEmMMxGlqMuGsqjwNnNYkjQURUPyCddbjvYW1IViUhi+9sW3ePOVVzmczxEhYL1FHh1y5+ZtLjYtPmr++E/+lEkzxQ2ey+fnaOGpTEHwkTYNKClhFLCGYNms1sgQSEYx+IFUqCyJST3YgbPHO/7im4mv/cLXsbFhO1h8GEgBDvYXHO3POb6xhx12LC/PKXVBKRRtyuE5YkQfKS0xpcRUmmqm2Duac3j7iGaxlxFWLrBZDdTTlrLSrDYJ5MDP/uxXefZ4zuN7n1CohLNbqlIwb2r2Dkp0JVG1xofE6qLjfBMpdI2aVUhZ0LUDu7ZHFwV1U5HkGDLuHYNXuBDoiWgpsMMO51peuvsSzrts4E8RkQReVVwOju8/vODxsws+erLglduHvPHKbd44VtRVou0sxii0ViMCXaD0gNETwGRbouvZbS7p2xYQmLpCRIFOZvT5BqQlBxUlBz4ybFt86oh+SStg5fb4xl8+5N0HA9tU4KVAKocSRU7Kk3kbnFIkieutcdYeRplwLvKC/TNCSoTIANUYR3BCjAwuIog5hzcGnLe4sxwnIINnK7KSYFI1aGUoiirPEz/j1+ei2GX30I+8sSAztjpmpbopCsRkQlFplJG8+eqrdJstz58/50tf/gKv3XmFvemCuigw0qIOX8IOU5zdUSpFUe1hQslkcYCUiuQ8SYLUmpdu3eWf/6f/Gf/1f/XfsN5dIbVC+MR0MqU0Fd3Qg0v4qDDCkHzAJJgWJW+8cofX79zh9uEBs6pCRon3PotmlWExP6AsTvCdZ3l5hR0ih/sHFEphuzXJerrQoRLMp1NMCPjgsZsNtu0plWIInlJKzq5aNtuOm3O4Oa3YX0x5cvmYP/if/0eWqwEXBFIqmmbGdDpjOp0wnU6gMTRa0a63dJ3NqWqDI0ULKdE0BdoIpBFM9ybsH+9x884NmvmcpA8Y+oHNsqXQK0SA0K/ZbC759jf/EBkFejxhiORwIREmhmQF9bRkPjcoXaIsrJ5uKbXBRkeKHqUSVamyNGIcYSgRqQtJPwickYSg6H3COktKcPLkcXYvkD23SPJpHMWQFBddYPVwzUdPt3z7w+f83JtHfOkLd7h1JJiVjlKkTCXBEuSaSi8gFkQXGfoVzq7BgxI1wkkwhmKq8XZg6HbEvqXveoaQCEmhlCT6yNALHm3g0+eXfPdk4EpMcOM4RJEg5lmf0vl0hojXeiukNLmjiZGyMIQYX+jk8is/S2LkjwgVxBiIMWStncx0HWUUi8U8Z2NYR/COi4tLCqORpPz9+oxfn5NiN/LHXvyPOEZRiDFST1JUJToItBaUheb2jZusNxv29mYURUFZNBipAImMWSMlJwuMlAhVoaxkMplm24yzhJCIJnFxecEf/fEfZeTSC19noikMv/DzP8fe/j7/+//xL1FR4Dc7gtZ87Utf4tWXX+JwsWBvtkCKkhA0NoLSDXWpCaalma3RpmSvWvDP/tlvsFpveP78lN1uQ1EWOTLPOvAB4SPJB1bdksJnt0FTlmihqIqKTVI8u1yiBrj90oLj/RmTQlFgwfZcdYmkDygqg7U9q7VDS898UvP6a69z/6NPGIbAbD6lOzvD2p75fMLhwYy6MkiVtYL1dELdNBSlISqNVjU6lQirWJ+1TI3GpoF2t2IYLCmkHFAkIepEt1aEiWDYOHqd5S1uu6EQnsWkYNc7dm2LFqArRdv1bLsObUp8SETr0CQKBaGQuRgKifU+Gwpl9tsiMlVZRZsFs0kQhWKICWcF7YXl2dUjvv3pKT/z9k2++sYRtyaK/apACYsw0A8dwXYkHxi6Db29opSKQnkGN+CSZLfdIPG4bkNwgXWbuOwkV84TjWGzszx/vuPDk8BlG7BakpRDpUzfUd6QtAQpiD92WnvRySSBkZJCG5z3L2AUMeXcKNL1FjiN9OUMUFBKEaPPusaqZDZr+LVf+zr9asu/++u/ofPXJ7n0Y8/YZ/v6XBS7jF9PmXFGHN0UcRTdZlS1SKCFzq2tAGrFbDZHyHGjKVQGUYoCgUBHnZFJgEgKFQN78yl1aaDN/sNIoB96lsvLTAkRCq0FQgVmdcHZk4fc/+iH3Nyf4YPnpTu3+fJXvsjRwQGVKTBCo5WBlDdiL9+6CQJOL844u7zgw08+Zr3b8Orrt+mdpZpUfO+H32OzXhKGFhMlwTlETLi2xyhJoQxNKSmUzm1ajPQRqGf4wvN86Ki6RN31HC+m+Ou2TjnEZMHXf+WX+f5738Z2G4a+Z+098dZtVtsNvbNs+p7B9VSV4Ph4xt2XjmnqSKLLVBIvcDYhdQIjMFpn7ZZS4B1x6CmAoBX4HPaTkYPZtdCtN2wr8FZjd1ukElibKHVgWlUYIahkRox3NtHtHK732D4Qk8INDoHESEnQKd8bIudgxAQhBpQQhBRQMj8APkaSkFlOLMifbRIMseTJ0rN99xFPn17whbuHvHw0ZX9aMq0NBA/OEm2Psx0Ijas13lm21rEZEnVdY2SgNpIhKj48ueLb759z6RLeqBHMINj6GqkLJJ5CRAop0ejcAkteYPBjytkmiZzYpkWGxAqR4ypTGMONQgSpkVK+KHIheGLMeK3oPVIplBS8/eabvP3269w6vsGj7W488WUYaYw5+lKkn9rFfiIuMZJ184oqvih0IXpkyt5RP94EhLzeT0DKk/WcUyFTRvOIHIEoyHh0SEQfkVIwnVRolTMMrl+szmbkUWEMB4s9hm2HKiOzpoYwsD+r+OKbd7l145hbL99iOm9y9oJP+SFtW8pCYpLh4tkTBjdwubniwx9+j0ePH9Bbz4NHD3h+scSHQG87qrrAykDYDsQYUSGhjaDWOepQiqyOFwnKquH1N7/MwfHLfOuv/h33PvoQtel5+53XmdeGR8+WFGrC3tzwc//BryKSoxt2SAJ93zHExLe+9RfEGGgHh3UOo+HwaMFsZoiuo5rPODw6JMSW5cWaqppwwzRoIxi6jotnJzy9/4T16oLZrGa3WaK0piwFMomczxpzbKN3jnbbUhV7WStXSCalQsaWrr2iUYqqURTNnFXr2e562tZjhwgp6+9CzMsTSUSOENIgR/ZdzMMOJQUiZUO8UDCEQBKCSL4VUgxIPCkq1q3g+w+23DvdcHw05aWjOXfmExYTTSEtMlkkkpAE/Vby8PmGe0+XbC1oY6h04p237qA1/NUHzznfFXQYUvDZQBsUQXYQBToaVCoyE1BFoh5lNCnTdEISo5SFEXAaMWWRF2FqdA2pTGPN+Su5fU0poEYIqkRmDL3tmTUTSqP58jvv8I++8mU+PbrB9777HtZ2uBix1kLUyP+/B+8zdn0uil1K6kV0YgZ5ZoKGUuU4xYuImLVO129vhCdGn4EBqgQJMQ3E5MbtFpmkEkXOLiVQmlHlkPI2zIaBSpYMfYdzidC1iMFyfHjIjf0ZisjtW8e89tprHB2/TKES0Vs2w4DtBhQCIzxKRLouZGlAilyurji7uCSEiHMDJpbs+jUx5HDrwTqKMmFxmLKiTAYTJdpotIjo5JBCI8uaG3dfZ+/l17jc9Ny48xoPPrnHru149PiUdlbT9j1SRqZFya1FzaNH55TaINDcuHGM0ZqHDx/QdS1RSyb1hPnEcLjQ3DqeMGs0CYePAqEmnJxc0bUuQ0tnc04e3ef++9+nEBrvC/qgaJNh7/hV2tU5ExU5e3qCUhJdlCQZcVYQHBgF3jomTYFsClJwGKlIKISWbGOklBqtNEMcM2i1HDVlWYoTU4QUkKScgDZKk7Q02dJ1/SKUMvcFUhBCJIjrzz2SlCQgsDawPtnx4HTLVEFZKCaVZtaUTJuGy/ML1jtLHxUuKDxZOJ5S4uHyKVWjWbcaL1QGGgQFMbecSohcZIm4YAlJoRH5BRwkifxiCCGNiqeUw7qVysy9mBBCEmIkBpBCI0ZAK+Q3vpQiy4ZShJBQIr/Wnz094d1vf5u7L93kr//tX+GdzSSgsmToIiFmfuJn/fpcFLtrvFMkIlIgf7iZFkLK2CUldA4qVgqEJASbt4qyJIRsg0oEEAEhY6bqptzSpJSIKdFUNdO6RsQlETG2jZpSlxAk2EShDNO6ZlKXHC5mvPPFt5hMp0gRs/0KmNQNXR/Y7bZILK3NtiwhFduu4/nFJUPw2BGBJIRgb2/OcnnFl955h3sff4pzG8bnmKODY5oo8bs11rYgsmugnu4xnR/ik8S5SGHKvCSIieXVFttuGJxlMpsy3T/ib771TbrBIqJDa8NmvWJvf4/jm8dsdzv6vmPSVOzPKuYTATLTlFXMTgxjCpbDJWcnZ7RXS8o6i58rM0FT8Ox0xcVmYGcVz55/Qqkji9qwGTx1UbC/mBLFQL9d0feSSZMRR307xjSWxWibE3jvKBTMpxXWJQgO68AGN+rL8qwud39jiRvHTvt7ewiluVqv0AJqbbDWMbhsj3JCkLzPObDwwlZFysFCMYGNAmkTYmNRYkDLLSJlXZ9U15bFfN8kodjZyC44YlQj0DMSxxOaUpLr9LIwFm2VEiIqRMwLlDgiveKL2VmmPvuU8ftC5P+WY+ovxGztSyGTnpXMiPwYESoTsZUUeOfwg+B7732H+5++T3SBykgoNSIltKjwznMN2PgsX5+LYjdSIfMPRZ4ApZQJFin5fLMKkErnbZwAaarRSytH2KfL6vbksmNHjy2ONEgiGsV0MmfRNOhR06eQTMqGL7/9Rdpzz6PdirosKHXB3mzGa6+8RF0oot3BaIS3PnC5sVxc7bg8Pye4DmUUe7MZMQaen5/z8PQJ7TDmuyqDHSzPnj3j5ZfuMJ3Occ6zW3ekPoKVvPbqm4id5d77V/jeE0vDjf1jvvYL/4SrdUu32fHphx/y8OEjNm3PrIBNNxBCAiUwJuOCunbDdrvFGIMInl2/Zrs+RyqDdYGyqtnbP2CxaJhODDJZuvYS5wPyMguR2+2AiJ5hN6CrFVJIul3g2ckZ3U4g5IRoA97t6KLn9LlDCcO+VEx8ojARQY8QJWUBdogMXYspixdynzxvd9SlZn9W4u2AH7JzZnA2z7SkwQWPC5GIzoluCaRUtG2b29X8jkMoSZI52CjHQua5r5HqxwbzI1mH7CYN6KwvjDlK0o+vXC1TjmyP4BMkofKiQIjcJcQfMfsyPil/ZamytCV4T/CBmMg5FuMLN8Z8TwtxXbhyQUsjGuvaKilHn/honhz3dIo4ngK1kmhjsMkhRELJiEgOmQIm5Tm0JqFLgUCRRtnLdVreZ/n6fBS7/D5FCoUgJz4Jmd9vSaTxpSSQ0kDS4wcnQOp808RACplcIVKGgpMUSaiRsaYROCbljJv7hzT6IZ3N6KS9+YL/6Nd/nYPmmP/pd+/RNBP2FgsmTYWMgX67oq4KpPDsuhXnq5anK8snT57z7OlTlEzcuHFMWc5QQrJcbTi/XNJGR0igteHNt97m2fk5ISTe/+AD2l1PdAK8RETJvU/v88tf/Xnef/e7EDWmmnPj1h0ul1s++vgTLs6XnJ2esdtss64qwra31M0UXeSH8Xx5ydXqgqYsMSpku5YxbNuOvhsYXE4biykx2ztkPqtxtmPXO5abNc9XS2SCQkvqcoIgoLuO3a7jyZMLvNNUxQQjQMqB0iisDWxsIoTItl0jRMWrLzfcfvkGB4sppdFIUWSklAuZzqvTOF4AoxRKeKoiMW00LlhslPQhYK3HJZHpwSHl4HJEPk2FkNtblWeaKMng7ItTFSKhdf49QozXr9Efu9cEMuX7SwqZ40+uvdkpLxNiykuEENNIPpYEf/3r83pLjPh5ozW6KLLFcfyakOVUIQZCyJvRTPXJrEYlZW5nZQaD+pglV3FEwSsBSmaAhFSCFH/sDymuSVi5mBolmdeaSZlbdzT4IHDeY8qKvf1D2t1Psew/GVcSIBQZQxJfiIoTEaHkCApIP7KRpXxjEMnQTD9A8hnvE1OWnSgN0pDGFkIkiRaal49uMDUlaxcJwdMNO/71n/0xvhWgYHA9IQa8z6ieZBPbq4HdZst6s2Xt4Okm8GzVcXa5RBGZLg44Or7FrCo5OTmBJBkGhzSK/b0D7tx5hdPzJdZ6+m5ASEnwCRUl3keePHnKt3aWdrAYKRic573vfZ/BOtq2o2t7XD8QvEVpMKVGleqFQTy4wPPTM4zWFIXGSBAZ8YKRgqBVpum6gdXqCsQrOJ/YbHsu145HD8+JI2dv0tQcHu6zf3BA8D2PTu6xWgmayuBiwIcOkkfrGY2ZsbGaXQcuRZ6crTk4qtnfK7E+Ef1AcJaqrBBak7zPBSjkHI1ge2ISGVlfS6ooGXDoFCG4bL8KgevbPFOWxbjZTDnkx4cXgl0x2vwyVkoQU0KpnKKWxbzZVqpkevH9ESIDLgV5YQDXRW8UmI8/KdLoVUUgUszBPWX2HEuZNQRCRIQa5VIx6+Py6S8fS5WUiJRnbkYYlFF4BNZHRD5G5q2sErnQCTVSiUVGhY3aFe8c+Yyclx+FLqmMZjGdICeJtm1xPlJXBoTC9TlU6LN+fS6KXUrXuyI96op+pLsbz3d5NTlG8OWuNiGiJyZPShbwIPNbXOiR4DqiqjN6TFJqw9F8n4kpSWFLCI4+dPz1u39Bt/G4ZGltorMtp89POXmwQSdPYRRaGXrvWfawDSXNfI+bxpBcx83bN7l9+xaPP72XYY3KEFwEpZhMplxeLjm+cczZ+QVaGe7eucu99z8eybiR3iXuvPYqT2Li9OQpPvTEGAgp4UOk2/VIBIU2LBYlTSFzDmxV0HU92/WG4Mm2K6lRIm+0pdIEI5nXNWG1ww2BvtuxvLzgMkTa3ZbVaofvs4wjpcRm09JaS9IGozVdUEhVUOhs6ndBgdZEXaG1QcqBFPN8bJcUJ5c989owrcH3bR6mL4pR/S9QUgEC50IO2UETpUCUoGJCxwLlHanLG2lj8lA/pogYN7E53nG8P8Y4SOssxmiMUmiVuXhqzK9VSEKEwfkRZx4RcqTrCMk1PFaoXNgi8UUBlOq6Bc2LsutoyKowVEWBEnnzmyH8OcAoKUUIER8S+RUcMEZTjp5gKfI2OaWQU/SEIsVACBGjJVqOYUVju5uZeHlGV5YV292WFCNaQqlzNkgMGXlfNzU+RWZFhXMeKSVd1zFrzD/kI/33cn0uil2+Aa8LXgTU+O/c8sQRXAgj707mYqfISvKkUqalxDzXE1JeD1P40SwwW2gO53sc7e3xYLOhxdPaLWiHMJqi0QybLZ/c/5TtxYRGRA4XU24dHzOdL5gIxeXTc84uVpRzxWI6Y2gD9+59Si0Ei6oh+EDy+QEsTG5tvA9cXa3YbrYE6ykPaqRSxJRDtk1pQApsCiQlcbalLEvqqsaHRFmUEAWl0cym0BSaqjTEkawcQ0LrgpAkzsex/cm9jikqEjnroSgMVVmw26xZr1b0uw5CpBSByhSkFBl8HgcslxdM9vfQtSH2MTsBAkg1ZXJwiFaazXZDYQyFimhTsescrVNcrQa8hUprCi1wDoTM/Veypl3S5AAAIABJREFUuUW1IdJ7gU0RmySbzrMdIjYoosgnVilBC4nSIL3ABwjIHFM50p2DDxnBrhRKSJSQaJXngiHm8JyIgJDJzGHUbaaoRk1ePt1dY6YkORAox0bm7oIUEOTtstaKUhu0lGiR0EJmryoxZ+vGUSc6OjwkApRgOinZ39vPereYIQxt37FznuQFdVnirEcpfpSXnCJGF5RFyXbX5RfGiAJrJg1Ez7wp2V80CGFZr9sc8F1W7O0fsLy8gBSpS4P7cdH+Z/T6XBQ7RtlJ7hcUJAUijMUqR/dJRv4YAZXIP04FUID0mTwhIlAQx2IpCKMcID/40cCNw4pXXlrwg7NHbNrAbmcpGkWwWxxgkyX2nqnSTGdTghMUuuLo8A6qmrCNFZ8++za7qw7Xzmlbi1Se26tziliRwpKYOoTSBApOnl2in1+y67YUTY0l8vjRY4adJQwREzXzpubWjQNOHkhms4qZLjBKYozJhu9giF6MD6OjMJqD/Sm79VVOYSMz6lSy9MIhKoWWGlkUTBfHtDtLvNoilaaczJCmpBuGHPZTGIrJFAUYoVDO5QBpG9CtR6QCnzQrFxFVzZtf/Tn++X/+X/B//v7/wsW/+zbKJrSOtH4JyYMtGJKiUQZZgCkyuSYf1iM+QB8mbIPhZLXibLUkIOmtQKgSPZ6KdA4dw6d8S2gjiVoipMaGwGrb55OQMMSQX41aCZQSaJHnaRmSmkBK7NgjkBLeO5QcX4ohEkNufa/1mlHllpKYi5VCopWgLqvsYVZiHLKAUAqREmUI+XMQuS2VIlvEtBDMpiU3D+aUMlGYgoRgCIFpbRh84mLTsWqzq0MJ8lwUQRKKN15/k6985at84w//kH7oEDKiVcSokNPXKkldFzgLvR0Q24hCsJjNsd2G4DqObx9je/sP/1z/HV+fj2L3wgX4o1MY1+0rYZSPjKc6IUDI8RRXZXJrDIRokAiEqBEiEuMu02nJbcD4vqUqSu7cvMVe/SnLzgMSn6CsamzvsdoivaC3Ob+hqmum0znT+T5vvP0OnQvsNzUPnj1j6bcc3bqLlpFd23IVO9bbFdZ1OcRZRH77d36bdrPmG3/8DXbbHTePjlmdnJHGTZ2SgkIJ/vav/hydAgeVIAwBrcdTBhFtDJ23dMOAFIlJqdludznRS4AxCtE7YpR4r7HegK44mN/i4Og2F5cfYb0HJdnsWnRZkFRWVzeTKV//lV/h/ocfc/LoEcEl3BBQJue8mrJClRVd2yNl4O23v8QH73/ID374HpvtiugDNiZ0UbKYLljUhkJuKVTEKJGzKCTZAoXGC839R0seXwysB8/gE2WZW696UiCkQRcabQOD6/NnHUJOKxOKsmqQLrAhg1DjaKcWQpLGoHUxBqxfb2LTqM9TchSjj3KgUdGXT8Hj9vN6IZbx+tm5UFc1RivMqHkLox4wBo91Nlv7mgkJwXrXvRjDCBGpSsPR/gyjZLbIiUykNVWBCwnjBE4oNsMSEbMN7EU6my54+PARTx6fjBy+61BxkWMpRd7OOjsQYqSsKm7fPmS9Oufe/Q9QIiCJXF2dM21+yrP7ybjEOIEZN2lp7C9SzLMVIeRY+8QoTZGjrVBCyqp0IRqkKoEGUkdMO0LIy4qMkIogFWVRc2N+yPF0j9OrHZ0Q+ARGGvKoZ5y5CAlKM5nOqZuGIAWr5RK7WvPSbE6Inh8+PGXb7vjy228h/Q6ffD6JaBDB4ULLt/7y/yX5yGyxgNWKs0ePUNuOaegwlaKRsFcEiuAR3kIIoM3I1EuENG78SgNS0XeWq9WO6DTTygCJptJsd4HeCZKFiGbv8BaT6Q2ePH3OybNnBN+zf3iAdVkSUzUzdmFLiJrZ/IjFwZpPP3lA2zuQBYu9Q1ST0fJzIfHhgt56fvDu97n38DHPn9ynVAWgcQlKIZjPKqa1pKkrjDF5kVJkAa6QhqgKzpYDH59u6UIJZo42GmsFs72G+aLOYu1CI3VDa09JIWJkpKkKvvCFL/Odd79P14cccIMiCvdCaC4ThJhDjowqUEaA94Rx85pGuxXk1rUoDClkzd+1KzqQFwuJiFKK2WQ6htuAkirLR0YJSRaJW2yKTKo66+jGpYQQeYkxaQqUkC/GCFomQgoUpqCqC7YD0PVjYc7YJ0RWGXz9V77Od77zHhcXFzneU5u8jc5nyjH9LGBdYn9/wS/+0i9yevIRz5+vGLo8a5Yxslku6abzf7DH+e/r+lwUuxdaKHFNPREkIUlJEkPmrcnxRJcP+AJEIOLHFjUr1OO41xAIhCzQcpzP+NFfKSVFWXEwW/Da4Q0ePD+jsxluOF8csOouUYUZgQAatGaxt6AsDIvFhNdff4Wz+x8z3NinWdQ8X+/Y2pYbN26g/JR+fU41nVP2W1S7RUnH40efIkRB1w34rmUvRW43mndevYkKgb6NbNcDdhDs2gFjSkhqvKlzRGRIHqGLHAg9ZO5a8g6FoK40TWmYNRq7HhisZbF/QNVU7O8vGNyOvb0JpVnk8BmR8yGayT7ORaIu+dd//hecPH5M33aA4M7dO9x9/Q10obg4O+Nsu6OoKsBxeXJCDUyK/PAoLSlLwWKqqGuHLCWpWjAogfOReT3D+cSzkwvO1+c8uei5aAWqKphNJ5SF4fTJKf1lx+UqG+JjiFjnuFptQEpu7Gvm84Lz5w8wcqDUCR8h+oRPAR+yFUvJgpCygV4hOTw4pO97lldXGR1lMzU6CUkIgWHoc5C5GSnZKWLDdcJOPvHJMY4QUg7cGfW+wbkcoF5VRB/YbLYkIVBakUJm8mkZ0TpvT43U+JTFw1JLEp6UBL0NbLdbog8UpiGFMDL2Iv/mz/+c4EeorcwSmZxgxwt7npSCnP8TefLkIeenT38kf7GRYdfmra2u/iEf6b+X63NR7LJu/VoJlWdzYtzAClmRxhv4RfpYUqMswJMICHEtQM5vR0RCCAPEF2PAse9FaM1iOuXu0SHHswkXlx0pwXK5RitY7M9Znq2RVcEQHYPraNsVdnPG9/7tKbMy8vZrN5lsNlx1r/GDe884ffaMN195mfmk5uLyGdOhZT30BBExRrHZtHRtz0QmDkzkrb2SL04ssW9Z2sSpTCyToigqdDFht+tye9TUaKNQJi8frI3ZkzqbE23H1WqHpKYpFdMqBzt3NtB3z3n4cMXV1RNee+015nUxms49icSw3SCRHB0eMTu8yfzokNPlJVpLDg8O+OJXvkpRlJw+esjTx485O31GtJZCaWS0FNJQInKCVmzZnxrmEwllZBCJx0/XXJ4/h+S5dfMm/eC5WG7obGLTwxAUuB2X3QqjIzIKghUoUUBqR9lIzJoxElHkWW2Kgf15QeMSctuTeodICqMlzmcZRhKSkHKrudlmuUWIYG3OuoAsYUGO2CWhKV9kZXhUyGONOG55Q8zCcGM0iYR3juT8iNC/zvmN4/Z8JByPRbIs888nIj4GBh9JQlCakhATu65l20batoeUZSZS51VdjJ7VdosUEikNWit62+NCoDRjUY95AyylpO9bHtz/lDBssO2OSuZTXeE90juapv+Hf7D/jq/PRbHL6QvXjcSPtkY55VwhCKPLgmzLQY7FTKKuW9TRKgYOyP7LhBwDfESmHussxajrghvzKS/d2OfTzSWrvuXll28jfc8wRJyL+CHgCXRDSwoFdnVCpQuquqQpFNQLhqB58uSS73/ve9z/+GOOj/Z5++3XMOWUlBR1odGlods5JlVJ6XbsF4l52iCGQKk1KThCSGhdUaoJQlVMTcVmu8GTePn2HX7hn/wif/u33+XpySkxJZx1+AC+9/TGUquKWhtkpZjWkSASgYiMPQ8++gg7WIbkScnlhUc/QIA7rx7z1ltf4O5bb9JtN+y2a/b2FlRlyfs/fJ/Te/do6pJpXbELlhhawjCQjKHWEtLAVDneuXGHsmq4v2n54cMnrNqCqqyYNhWny57NpqPrHbqoEFJQmopNv4MQsDYiQv4clfRoKVks5hkDRW7jOwvrrUW6gUJCXVbsTwuGIYM2m6Ji5TucH8AUBOBn//HPs93suHfvfn7JSUUxOiqugQHj7IQYPKYyiKRROtG7XERizFo+IUBpMS6LcjYFMTN60uhZze/ohJYm33NCZn1hAp9CPrFJgaknRJGT4rrOsbzq2LY9Sk9IMSK1wIccDCWNxuiClASDc7kd14pIJr34ILDOoYTD2gApMDGSSVFgYqBMgb2JYaoVi8lPt7E/IVfWRSWyDSev7vSLUxwikPCMKuLxH4VImvweHGkp41dJAgSjSBn/o01vnjxTVoZJXXC8t2B/NmF7sUUkmM6m2LAmyUhvW3YEur7D2xrXOurpnJQSwxDRquHGfMrbd1/mZPUBq9WKSVOT0Eih0arIok4lKbUiWJ8f7l2LKUuiaEjlFKqBpD3Ba5z3+G7H9OCI3fk5ZVnQDwMxAkngrCOmgBBkqxiKvneEuqBuypxsZRKiEHTW0+06+l2OdhTSZZNUisShY+vhsj7l9NFjlheXhLbneP+Apmn4+MOPuPfBhyhrwWUy72xaUEjJS0cLbh7us1le4FrHTGia0GLSlLNnW5ZXUM4bXrp9TN9uGEKkqjKdWCiFUJHeRwpTjfNIibMRoSNS5hauHwYSCW00IkV2XSAMA1Od0IUAHTFCcDSfsRkigw80hWE7uDH2EL7z3nfAS9abDUKMTLhRnG60IYhrGk5GKPV9j1bXSw5gFBvHEPHe4dwIHxvT767ncGmUqVSVASGxLs8FpczYMSlAqIApi7xI0hofoe0c29ayWm0RKK7XJVk4HelsDygGnz24IUSKYozoTLlNDgGci8gU+f/Ye7MfW6/0vO+3xm/aU02nzsihmz2zW4NlSVYk2ZYDRYllB4IFJ0B8kb8hN75V/obcBYiBBAYSxIGAJLaVRHASQ5Z6ULeazWY3m+QhzzzWtOdvWFMu1q5DdkcJfCG23GwtkLV5atjFqvN9717rfZ/n91graZqK/VphgG6xpFaC/UZyPLFc2R9//Lfxx7w+EcVOUnEpK0kiAJeumEsjd57CisuCJi6L4mW8nABs/tCuv5JQkGx+FuHyF2GxFHiRHQgHTclL9YSL846niwW6vkbSgdEsEnykD4JFGzlf9WibKMuKwlmKesR4vE9dw1dC4NnqnEcPT7m2f4Dv1oRuRRE9oY0ECe16RbcNNNWUtk2sQ8lBqtDRcTgZM4Qx2+db4rAhdILTR6fUpqasC2xZcHpxxv1HD1htVgxDn8UQwhKJ9H5g4zwmSkydbULRG/qNY73aYrTFFhqjyyxgzYYluj5y+vAh/Xbgyq2bDCIwOmhY9xvu3r9L33VIOvCGw1nDr/ziqxxfiUhWiBjpno44u7dC9IlIzyK2PFksGY32mY5L+vU5KvZU2mOVII0K+j5ivER4Sdc6imJE04x4/uQJSSaiEEijiUoxnszo+p7tdosXkY5AqQVmbJmOC0TwuGFgmhRniy1V0BTWsG47UgwM6xUIRVOIy5fG7Ff1AFmekVQ+M4aUWHWe3ARRWc4TA2LXD/N9eCE+FgkIeZrK7oUHkeMLM3sPkJlVJ3e7PquysFtKRWlHrLcd2x4Wm0BVH6LDQKaldLu8C4EQFh8C3jlIMvMWk0AnCSmgRO7LJaGoxhU3rh9SFooDPYdijK2/xM/dusaTb/wfFOEM/5O/sftkFLv8Y3zEqHzpoEjswJ7qhdo9kcXDwG4ym5Xtl8fgjyZrZvtQHnTIXUg1gNQSKQVlYZhOKqpK83w7Z7EyGJHpIlUtoINt7Jj3icM0QSlDUVSMJntQVGgjuXEFfvkrr3FnXFOUBTEOaJHrcz/koBmtDK996lOIbsBv5mz7kF+dh479q7fo9D5vP3g3v+JvtmA01licc6w3G775zW8ihGB/f5+T01Pa7ZDTsLxHqEzlQBuCCEhjcENive1BGExREZUhWIsg38QSgdSB4AdOzx7RhgXNdEJKHYWp0R6KZBA2sb+/z+FMc/OWZjp5TGkcsbfMN7ApEl2bzfsrd0FdJbRNFOQwnaKw2RubJLqoGUrPcrNCRUEfBNt+w9PlBTu3KgmBkpa6HtM0DRcX54QQePn6FeKw4ep+w8+//ll0crz1nTfQWlJLw3l0GKU4rMcQA71zKC2z80UKtICyKOgHh/MRHwWbPuBieKHRCzH31ZRIL0CwSexkJjKTkq3KRn8RE8o07ADxFFVBDB4fcl9ucJECSSE0uiiwNh+dy7pgPK5Ydz3LVUu7dehCE0OgrAqMSHS9Q0qJ0jlfQqicLiYBYzWT2RjfbUlxoKkL9mcVRwcVR3sFAoeMI/avvsKtT38W080x+w0mbDEz++O4kT/W9YkodpcX+uWYIudRZGFwuhwyvOjp8WHyEpe2skvFVNppqPjI+3dT3JTyc0qLkJa6GVMWJbPxhGlzwXm3oG3XNJMp3kdGdcPJ4hlP+i2GhhuzEqkMtqxRxmLqGolFpMgr+xWmrbhYruiTprGGwhasliu63nF85Tq//Vt/l4fvfcA783N8bAnBU+jIyelzktnDVpbVyQVGZ2XpdrOGXtJ5R92M6fotMXb4EPE7YSwpoYVAFxV7B1fohjVSGNbtkrYPFGVDVJZm75Bf+tVf55tf+xOEH4iuxw+rPLgJnn67QKSBfjknRYnxnokVyNER+5NrxP45rl0yvZ4RWC6O2drNrsnu6ZyiNx5rADFQGIM1lqIocM6Bi/jO4fotyW1xgyD1ERF1/luOCSEVYjdKXV7MmZ+fEYKjLCyiX/Dy1QOuX5lx+wdvIglEMvrLDx1GCtzQI0zFpK4I0eLcgNYCYqA0mqbUSAKFkUhV0AyCVbtl6wZcTIS0i/NUCqlMBsrGQEqemEImA2NI0WOEwPkeLSWBhAwZPNp7T9sH+sGz3vb0LhCFRJuKUVmhCsWm37BYLdm2DqXLHcvOE6OkKEuGfsje7503NyWPEru8i+hZruZoIoWRTCcNt64fcO1KyWycPbvBNbz+5S/wM7/8C3zjD36f8fGYSsH+0V/p7P4dWYZLgkSWf8qdlijlJKed1AQuJ7aX1rKwe7wUJH8IELh01eYkLbUTYyqEGqF15GDvBstVx5OLjoN6xnzlGTyMi32E1Fy/dp3vuW9z8fQhmzYyn29ZHw7s7ymE0llHJgtEVdLqSJwIRkpx7+kK0fv8FxMTKmmOZoeEdqDUJXU5Yth2dJ2nKcDqyBdff41mus+3vvUtzh+v2DpPDA5T5N3Der1ls93mfuEw5ElhvDS5B8bTPcZ7h5ih5Fd+9W/zB//zv+Th43OS0Kii5u/9g3/Iohu4cusVdHLcfe8HsAuLSRFiB0k4kENm/NmEF56NAzc03DqaIJPDDwVtJ1meWU5PF6xdRY9l6z2LPqBFQVKayd6MKGC17Rh8YrvekkJEpYhMFuEDOil0yqltrevwyVNoDYiM4085WcxIQaVBuC3z0x7Xt4Tg8nUiNF0/ZCHujnBttEKEuEuL0xhrmO1NmU4nPH36DB8iWmsKrTAa5DqxGgZ6n108KcUXj4L8fFqL7DUWkIRAS6jKfA2cnS/ouj47O3ygc55+8CgtWWxaFusNTVFwdDTh4LChKgvmyw0+5GtWiUBpNUVh0VphdKbJSMDqDLEoTPbgSplIfsBFj4yC6AY0gVInrHQo0VM0lid3vsrq9NssTx+j3BqlBK2/3CD85K5PRrF74Y3NjonMU9/xvITg0kWxA9jsFOpw2XVOl5DG3Mzj0lebBx4CdgU0T30VqBKja0bFmEYYjsqGc7XkpB9YPJ3zd37lb3H12gHvvvE1lE+oYOm7gA+gTIGyBdpYZJLIpKhNgS8EYvDsWclaG4bxiMWmpZCGl4+vk7oBmwT7kz269oLNkJj6RG167r31J6hiyq0rJWwH2pMeQaJrW2LvMi1X5L2tTAlihoKmCFILNtstp2fntP2a/+sP/xWnJ+cZlyUV+4eHIBXL9Zpf/Zu/xre//sd0riPh6V2HQmeoaamRDBgrQCUGH1FqRTOGvaM9IonzuSbEMU8XgotNzbNtx2K1pm09G+8YlAUreX6+YLS3T7V3TImkGG3YXFywOj+HKEnJZvJw3xNSpLQ7b5iMBN/vCktC65zREENkvd7Qd0B0mQlnCjoXiMKQZMKnnn7TYW3J4BzeR9zQMaorlssNz58/R2uNtkUOXQoBLRN1ZXEp0fYOESJKRApzWYgEZakpTJZDSSEI3mG0oColwXsKq2k7x2bT4kIkCYXSBqV13rEFz6oNdI/OefrsjKI09L0HWaBkwChBWRXIbIZFK4WwKkc2+mxjUylBDPlIblU+RovEarHg/r2ekb2CFYr9PcNsnAj+jLTtKORAtArTjDH19Md1N39s6xNR7C5JxexKWv5nd4RNYjesiFlTxyXo80Nl3p+7Ei8+R+yAOBKFE4EkU04pU4mjScXZheHECFaDIGzWPHzve7z3neeI9oSpERRJoVSB1iW988yUQSBQQlKXDb7Zo2+fsBy2iMFzODpApcDpYk0zOmJkLd18wfZiyWq+QLrIBkE3JCamRbpnnM+fMC7GXL0yZtl61l3GH72wx6U8kQsu96dUkRvgeMfZ6Sltu6JoDO2qxzuHEpLoA2fn53zta3/C57/8Zb7+J3/EqFAYBc5Hjq7scbS/z7DeMGzXFErRjEckoxlSQtsVN6+PuHqlZlSPGc1u8fh0QO8r3v3On/Ho0ZxKGWRhCDIxDLA+X1H5MaaU3HjlVW7cuMlbb3yTp/ce4n3C7fD6ENA6oHVCmkiIWSYUY0TsNGQiaYJS9EPGJrkQECm+QJkPLhCFxqdElIm287SuYxja3a5QMqxXZN5mAKUIfYfwA9PpDFNY4rpl2w1oBFYqKmsptEQKSVVorJFEP+TftZRgdy+6vkVJS1Nagotsk0cJCUqRpNzBKBQC8Enn7x0T7TZ7aLVO2FLQ2AqlVaa6CAExoZXO2Su7XahKESUFpdGk5NBaYpSisJbgEs+fz5mM9ymrKVJFSlNgpGMoCnS5Rz3eY39v9nHewj+W9YkodlzSa3dFLL1432VRuzzWboGB/GPrF0HCeYmdEBlSEqSPfP0LCoWQCOUzISU5lvMThNtwNLacNIazrgfveP7wNtNJ4niqGYzExMRsPGZ/f4+9vb2dlELlqaiVYCuKcszhwRHKJDZpgli2HE0OGE0PmJ+eM6x6VhdLunVHGRU+CbzPmKpae1Zxw9Dlo5uQHmssMWT6roiCFEBrwfWj60wnU54/f8Yw9HiRKKuauqn5O3/3N7HC8M//2e/ngpY869WK77/5JnfvfoCRkVlTUBSa4yvXOTjYp6kktb3B3ffu0q57XvvM69x45SW+9s1vcLS/z2ysWFxseP50QNktbbKczM/Yeo2dHODcNqd0WYNEon1kM+/Yto95frYCrfHtlrQdgMRAfuGKeLQO7B3UNBNL9IJ2G+gGz9DnPI8QIp0bdkE1ksJkzFXuaYmcRhah8xEXBdveIYGqMJRGUkmyUHgnMxEJUkz0mzVDXdGMJhg95Oa/zFYtI7J0wxpFsfOzJiUzXSflU4P3PUrETCgRhrI0jJJA24JyNOZ8vsDv5CJZ557zVJL3FLakrCQubCitRgqy28KYnewv5kJmLCql7C0WkabK0hWS3h2xd60baVltIovFwHLV0lTjLH8yltFI00U4X54z3yz4zMd+H3+86xNS7MQPPX44ftgJUFIJeALnJJYYcQRpthMTyw83evyw8PgF9Sx9RIO3I6hEDzI4dGzZKySfvXYN4gnzxRohIpbEuCwwBcyaEa+9epODgzF1XezG/iofv2tNmQ6pjGRbPEKN5hS9IcoRQ99wtt5w/4O7LJ6fY5PAty1yNCKYQOclq94h8RRG0w8REddUVSCc+ExUKQVK7zFt9tjbVxRFg9UWJRQyKZSwLDcdsqxoZsesTp9Q1YLgE+eLFX7tkNoS2w2jccGg6oy1l7Ber3BDYihHzK6+gln1PL1YsOq+zaRYc7RX0m4Dd9/vWG17hrggSsls/4Bh0zJ0Hd57lCqQUiJNxJRhl8WxYtktScUIiaZMhuACgwKVIoVV7I2n7O9ZqhqsTGw2gV6M6F1iGDzPz9fM+0AKEIeEi4IyKIxR2KJAkHB9j0+J3juUEjRaMNaBkU1oqyEZYghQGNIOJHC+WLFYrDC2JES/kzwlxI6EEqMjDJEkwUcwRYGSimHo8/UjNCkmIo4YM/69GWu01YTUUViQgyDJApc03eBQ9CjlqYzHJIkIAeUTXkakVjuRcEQrTWE0RhnWCCQ9hY7I1KEp0Lbg+OpNDo7GvHf7LfouYGTDxUXPZr2AI0lRGaxt8LFFhJZhO7BtL/vbP7nrE1bsfnRFEJc7OYf3PjPKrEeIsJvYyhe9u0u5SoZs5KZy4hKTnVXtKmliynGFk0kJsaQbJEW5j61HLBaZJuL8ikJFRmXN3uSA42tXqUc10kiEEplKojRCGupyD7wgtD2ii8znZ2y2CZ3g8bt3eHrvPmNbUBqLtJpZVWCNR6qw27FGRk3J1g8UCvZGJfNRIgpJNIKqmfKVr/wC88U9nj99ikiSyXRCmiQePXwARKyOvPOdP2JzccqohugkzhvOli1CJabTA/b2JyiVKIpml0OaEBQURYO2BaNpwXL+jHU3Z1QLWqe4WHnQFe2wYtO12LJgu10RSfSDo+t6jDVMJ1NmRzPm8wUX8xWyj+goWK23OCSthBRyv62ipyRybXTEuDGUkxJhCspZ5rwszs9ITpBiwfZkxTD4DHyIkDBEJfHDQD942sHTDYGirphODX51QVko6lJnoz/ZLiakeSHrqMqS+XbL2dkFUUqGEHMsp5RMD/bpNku67YbQBkprQUbqusIJB0lgdEEMAyFc2sM0Qmk2m+yzDiGijebqlauEwfHsySMmjaUqagqrCM7ho8HFiLAFMSUWqxU+JgqTtZVSag6ODljOTxjaZSZ2C8tkeshsukdlNUdn9eNZAAAgAElEQVR7ByzPV1iR6NdLhjZfkyEmfJL4qJC65PjaVbr+J19o9wkpdv8/K12+kQhRolQgwyizxoldaGJ60cuLHx6GhfxwV7cbYoiUtepaZdZaUxuqsgQxZTqb0rkcuZdwCDyFLihtzd7RDGNtxm6rXPCU3gUYCxhCohs0z08i3//+E4qy4smDM9aPnzNOgjEw0gqlLKPS7g7dGh8GBp8oK8mosrTLnloVHM1qhLG0MvGZL3yJ8/mSJ0+fc3xwQFFUPHr4mBgjzg80tSH5lpOHt6mtRcZAv91ilOXK4R6TvX1sZdAK6qbOCW1AjCB1QRSCrl9jrGBvf8rJyZYP7j4mxlO8KzBmhoswO9hj/zADBKRa0fYOt9t11eM9fv4XfxljNf/rP/9fIDpkF1j3ARcjWzegiEyk4OZByacPDcd7kmqv4PhTr3H8xb/GnafnPL53B0XAbdZUkxmiaXn39mO6PpBM7m0NwZFk3gkNPrDtOsoIQ1ozMYLD/RkjK+m6joBg/+CIxXqLR2JsQSUU2yGy3vYEpeicJwpFEomTi3NI4YVUqXMeoTR976jKmhQNSia264TznphA2yyS7lzmAwopmIxrXLdmu1xyNNZMJxaRAlJ4gkj4mLBCMwDd4AnB40PEaEPf91S1IuKxhUUyQkvJwcERx8fX8cGx3PTEZIlR0IcOawJSWxarLdNpSVOOqYvZbqDWUPqf/OTYT3SxE0mQsJAkggqrjoEW0Pn9Al5gcV4MLMJukAGX/T5SfFH4UryUGAiqqiEOS0TSVFXNoAy901SjfXqXrUdVUTPZOyD5eRYlC4HWRQ7xkWqH5F7RDnPOFkveff+ER48Gxo3i5ME5qvfoJNA+EvuBqBX94LFFSZSSPrS0fYS4xpQ1VkQaA4ezEUu3YEDw+pdf55tf/y7eRRaLFf1wwXq95dIap5XEaklyiflqzdnJOQKFKSsm+wcUdYXQiaK0KK1yYDOSsirQVrFp12iliFHy7OmSxw+WhDCi71d435PiOVILZKE4PZ/jXEIojbIFQxhwUXHn/mNU8R0mszGdc6AkttSUIdD1jigEpYRbeyWfvmK51TgOao9LW9rz50ynB/zW3/hNhu2ar/+f/xu3v/cmdx8+5eZLr7BcwvxsjjUaqRSbbQ6ADgj6ITMJu36g1gJjCoZhYOUyKFToAi8MQ5J8+nNf5IP3b7NYrnY7H1i2W7yQ6FITQ6TtO4JzFFqhdpdUNzgGF+n7fH2pHWI+RE0UOU9kvelBCYR31E3Fb//2f8Tbb3yHe+2aSa0YlYrgA94NhBggRJrRBBUUm/UKLQVV2eBcYDG/YBj6nWRmimSM6zuUkQyhJSrNtnNsOs+677CyY2wloigom4bD4yuUtUZqia0alGkY/F/CDfwXvD7RxS4PHXZhK5S7iazNvbxE7tm9KHRwSTy5zN0TiN2GLos0Y9yFcAPIgrLao1vP0UpRFom+W6GoGY1rrEtEAc1oj6IZ0686UnAZmGiyMwA0vvO03ZKL1TPOlnOePD8jpZr5eU/fhix92WUEuJDwCfqNQ/eSqhihRUEhDCY6dEpYJehCbkiXheVsueBrX/0TZuNjqsJydnYBQjOa7DObTXh8P1AXmYC77eHJwzOstozHY8qqpCwUQgbKssqKfKGwRtOMxhRFxXK9QCqN1iV3bj/k5PmSw6PraFvy8M732G46EpHRtGa1bvHLLSkZfIjs7R8RzhYsFhvcdsO3v/s9ytKilUQlmSevMmE1lAmOR4Yv3qy4VvQcVZ5SBla9Y30C3/3GV1GzaxweX+PewzOenCzZrAfmzz9gM19QGsVkMsI5T9t2DH1PIKPApJCIFLDaorWlGzLePtkRX3j9Z1huO6RTfP7LP8fd+w/wgEt5sNGFBFpghMTISNy5JoJ3RKHwUhD6DqUMPoCW+fuFkHdnfifh8cFTFQ3K5uv1X/6Lf4EaHJUtsIViNJ6wXS+JwWN3eEYRA4UqmDUNISwxWiNSJiMPXc/Js+f4ruPVl28wujJDW4lQidd/4ee4cetV/vt/8t9wcbKiLjzXbl7jyrUZn/7caxweHzA/P6UeNZhqRFIlafirnt1PxrosWFhylfMkcQmG2sXWXb79oeL34gM5Hi8mksh9MmPHSOEpqwskLVL2SD8nhp64OaOsp6AtKXSsz1uUThhboqRGKUNmzkmCF6wXPf3QI2xEl5LRpOb5wzN88NkXIiRJGYStkKakQ7PfHLBsW64cH+A3G0LK/ssUPClJbGHYP5ixFoG/9x//fe6//4QnD77P1uTnGE32qKqKphljaNluO86Wa0LK4dT1ZIwxCW1DPgoJhTIKpTMMIUaHkAW2KGiqCR+8+5D79055+ZVP8dd/+Rd56wdvUegCLyPz1Zptv0GXGluPkVJjrMT5sNvhGvqup3U9277Hyhw9GUkMMWGlYCwlrx013Jg49rSnUpnHV0rNut3wzjf+DT947x7XPvVFHj94zNBFLk5OWSzWSPKOrdsOjMdTuj6x7QdAUddTXN8T+kDwMdOaEyQkh1de4iu/9OtcLFe88+47vHv3Pk9PTrNHNiWGBEnqXUC4xoidhi1CXRoKo/F+QOksXnbOo6XKJ4mk6L1niJEkYNzUNOMaXVqEhDgEVEwoJQnC8rv/2X/Om9/6Ot/82h+TB2keQZ4Cq7qm7TraLhfVsijxkZwGd37OaaW4cvQqvV+zWs35/luOZ4/fx7UnvHpzwq1rBZ/9zCE3r9Y433FxcYa2lrIZYaoRLilE+snf2n2yi13GSvDRae2ljUxcmv1ffE76oS9MH9ntpV3PT0pNCAKpDLqSRLaocgTe0/mOcjSmbo4w5QiUIe3wOkYpgthF8SmN0BZitqBJY2hGByAiPp7zuc8pnjxc8/Buj4sBEROT/X3G4wlFM+E//Af/KX/4r/41d975AVf3a7ZJIQOY0OOtIiRFEAZkYjSumIUJb37rj3ny4DnBd6QYWV2cMT97jlUCjccIj/c9Pgrq0YhqVCNUwpaGajpmunfM/KIlxBbX98SURdrOrSmrKe+/+4i3v/sek2ZGZQruv/8ezx7c2QEqJXXVsNyu2Q49ceWReks9stii5ks/+zN87evfRMeCmDLeqO8TQiaSgenelFsHU+rugk8dWabFnJGVaDTORXofkarAr9Zs+8dcnG8IsuLJ4xO2W0dZFFRNidYQQ49kwaQRSFXRBYU2BeuUCELhw8Cybam0xCjD4CO333+f9z+4A0Tu33kPHyLOBzZu51e1ZnclCbTS1EXC1BV1aTBaobREaMNyvUYi8b1j6F2OgiRlGYwUlGVBVZaoS4G0SviNJ0mLHzz/0//wPzJ06yyL2h1MQghI6TG6YDqa0HcXFGoXJxoiyefc2LPzM5bLKTdujnl1cp1m3FCYyM3f+BLCLRFpyY2bM0Yjg7KJKDzSZjdLFDlxrij+ykHx7/gSlxiTXLqS3F2WO3rrpVNCfIgByG9FhgewS1TfDSdi9BAzcdeHFlRJPbvKah4o6gmmOcTaBrAIYQlRIJVASIGKecpGUh/WXwWqUDTTMZFIuXQcTB1uEzg62md1voQk0c0+dnbIunNsfeLqzRvc+eA9gi0JtsLW+/TLFecXHcXeVUQwbIaWcjbienGF508+YH5xlicKYSB2K2ojaJTNuaXCMqBIvceqHHForWRvfw8zmjC7cgvTtDx7fBcrc3aCEgXEgru3n3D73Tv4LtCllmcPH/HoXk/Xb3bhzZmdJmRGtLvgSaFn1W/RdsvFt/+UZbtBG0upi8x5GxymAKFhPKoYlYIbkxFju6U2EqUgREVQBm3HxFYijaApLItu4P17D+iCAGFQVlM1NdNGE90SawQhKVad5NlFi8NRlZZ16BkCWUysdO4TPrzPcn6GcwMpRbp2Sw67ibT9QGE01kq8c7h2Q7IlhZaUNguKp9MpVVVxcn7Bp1/9FGenZwyqoxMdCLBW0vochm6txSiFROBcT+gGgvMEHZCd4+n9e1gDSgkgo6WG3oFwFKagKErMrvAakyeqZVUSwkDXbzg/v+DascUEiV+3jGdTjq/NiC6RkqEZNZSjEUU9IoqIshZ0QRIFUiqM/qtp7CdjXdrFxIe7uQ8FyTs8lJR5EhsFKWWmmECiioJ6VlOWOg8xhAKhMxY+7lTtWZWQZxxC5ghEkUNblJQIY7FWM2pK5PGMUhqWp2fcf+8DNl5Q1wf87M/+Km+89Sb/+x/8ARfr55TjMeVoj/P1mn01QYhDmrpiFUoWm+yPNXGOrcc0o4qurVgtVqQh71wKJRAhoJXFGMve3piLdY9uamb7M0ZVoigM09mEulRoUfEkOApj6V3ipVc+w/t3HvHB3XskIkpLNt16N5XV+OiIKUditC7ghSQgCDHR+Z4ggRjY9g5bVFRlyWQy42B/nw9+8Db7szG21EgZsr1P5rDqfgjICFbl4cJiWPFsGcA2CBnQGhI92pTYsqYsLeO9GbNJgaVBxY6zs3MqKWhkz8l2ANEgRMIFz3Lr8bZgVI7o+4Gu63M7QWbQ5uAc3eCwRjJqykwoLi3btsO5DqErlFTs7x9y7dox6/WW2VRwdrbA+R1+QGWMu9FZCzoER/R+F8noUUrj6HceoJxyl0JAqB21J+WgIEnm4fkQ2PaBIcJkOuL6jRsoqXEucPv2e0zrgm4bePJwzvnTjrKp6I4toTeMG0lVFohoqEzNweF1Nu0aUVikKkiqQJgCJX7ysezq937v9/6y/x/+Itbv/dt92qXv9dL7+tEjLnzUHnbph832sxzOQsoex8uCZmyN0DWqGCFUgzAVyBKkJe5yLVAy3ygx5yL0Qw5nkVKxy8RBCUEYWmRyGXbpekQY8MFxcnbG6emS84uOD+485M79uwyu5Xf+4X/CcrXk3t3b2QBej9kGxZPzNXrn++x9wBQlZVkQvGc5n5O6QGU0lTEUxmCUYTydMp3t45JitLfH/tEBVaWJqaftOxbzOSfPnhNDFsE2oz0ePD7lre/fZrPZoqXIOCYpGLzLSPQUCUkQRAZIXua1DjEitUaVBWVVMx6NscZy4+ZNhsGx3qzQIrA3GzEdVwiRcmCOShgCKvqc7SAkRT1i4yU9Bcc3X6GoGtAFg4c+JExR8+nXPs+1l19l23dIkei2a7q23aXGCVatox8CgwcXMxEmJoHSBVZqpDYMIeJSYt33tEMO6BnVJaU1EANWK5RSOOfysKosmE4mNM0YrQvGk32WyzUxRVLIwdY5gEeipMC7Ae9yMZNK5NjHEPC7a6XQEblzc4To8/MAUhlM0eASLLYdrfPU0yn/xT/+xzx49Ijbt9+jbVui9xAS7XrDdtWxWAxczFsePz5lMV9hTcY3Db0jpUA9rilHI6QdUdRXqMZXCbGkaD79X/6F3K1/SeuntNhdPl6uj0pPPix0afdnIdQOLpBDS6SSSGMROqvqkRq0IWJA7XZ4kqxHE9m3G6MHRGaNKfmixKZMesz9GNcShxaVPIJIPVKUdQ4Neu1TX+Dk5IKTk9Mc9jKsefft77C6eMZ8PudivWWxbdGFRSuTw4OEoCyKjBLynsXFEpMUhdYYrbG2wJY1zWSPcjShR7HqB67cuMZoVBD8kE3xITJqGpqmZrFYc/XaS7zx5g949vyCFHwuSFqhjQEBQ8j0jm3n2bQDg8/7ExczYy2kxOxgn9/6zf+Ak2cnpJBYLVesNmu6oUerhBYJazJZV0sBwaHJodKCnOXggqDHYMaHOCy2nKBMhTQV2z4gVMnrr/88v/uP/hGff/1LfPeNNzh99iz3vITGJ5kL4xAZAvjLiESpESJz4i5/lnZwRKlQ2jKZTSmVQslclPJwX5CiQGvDqK53L2iC9XrDp157jV//27/B9958g+AGREw7dWduceTMjEwstoVBG8VLt25BSmzWa6RIO0RTRGmTrzelsWWDNBUuSc6XK4KQtIPDec/p6Ql/69d/jYf379OtN2iZw4iEULRDYL0ZmM9XnJ4tOTubE6PM6HsTqUaGYtQgdIPUU4rqCkqNUfb4J7rY/fQcY9OP/kF85BH+3zu8S2Hx7r9y844XgTw7sbIQjhgHEgEpAxBy2PalukWofFFjSCq++PYCMqstJnSKlKXFUmLwxLrEFgXaelLcUJuK8/P3sXLNtJK44Lj91ltY4dirswVotH9I3RQM24vdrlEShh637bBCITxMmwlt2CKFpGkaQhTosmZ0cAWU4em9R3zmy1/h+NYr4BZ415GkJsRI27UYU9J1jq9/7U958ugZKSpsUSKEJ8TcR4qJHJLdO2LKGsaYBFprQtjZpaTEbXu+881v0y7WJBIuJvavHPLKp17l7TfeQCjDYr7kr//iLzF0Gz74/p/xaHHKK4djDmrBWEs0EWyOiEzaMDs6wlY1m3CXybJA6BHf/rM/5ef/xl/Duy1x8PlFK+kMdlCKwgJpCzvbFkphpOGlm7dYrtc8ePgw579qzagZ8cqrr3Lj6jH33nsbqyQPH9xDaw1SEVE09RitDSkl6rpCqZ7vf/9NhtBTl4r1+ZaUaVIkBFIpfMw9u5AiUkm0tSw3Kzo/4IhshkRSmtJWJJPx+0pYfLKEQXC+WOMDzA728dHzvbe+g+s6YrdlvZwT/EA0ElON8L7HGoUQAm2mCAHzbcc3vn2X4yszmnHN4VVQ8xXFtKQQa9r1CcbUH8tt+eNcPz3FDnjBq0u7eav86I7uRz4NPkQ/CfEC+JnYGa5FQhCQKIQSpOggBWIKsMu7ECJ9KG8REuQONpAS0e/4eond7iBiK4uWNZvlBrRkMhpxZTrhVK9w3RmEJeM6gJRYUzItJ+w3BYNQyGLC0LW0qw2HowlSCJbzCzaLBVeOriKERqFJQtB7R9huQRhuXX+ZLsLb77zNkCK/9Tu/w9npc549XGOqMUkoRPD0sWWxWO1CxSWuH0jCkIwkCZH9pf2WtusZXCQkiUgy/66FYjadoTbr7F4gYpPi5OGT/HsVgiASx1ePOTo+5gdSs1huGNo1739wnxQ9JxcbhmWPiAIOLRSeRiqMKfBKYkrDw+cP6IeBo+NruDjQDZIP7j7mv/uv/yuaQtHNT5AuDxaSUhijWbXZdZBax2jSAAklFC/fusWji3Oenp3Tth11PaKqRzx/fsYrL73CetPTrlf4kCU0SkmE1pycXtA3loO9CdvtBud7ohSsVmdombBaIJKk6z0hJoaQ8FFgRBZtG60RAgY3kAQoYwghse4DQ0iw7bOVUUac2+KcxKXIdH+Ppm4Y3Jb1Ys7edMJqMc8Dl6bc5VdIqmbEqMwpcFEY2i6gtOLi/Dn3H5/y1T++TVFN+Fzd0OyBtR1SnhHj4mO+Nz/+9VNS7DKQ84Ul7DJImx8uduJHCp8QH90Q/ugOML34Y978SZJyEMWLG1wIEHhSGrKuL8kMu0SQZECJCH4ghIFIPn6kIEjJYrWnDR6Rcr/m/PyC7dohE2gdKLzAbT0nricphTu/YL3ZUFc15qUCowSzcc1qMWe7vKAsG/rtmjBsiSja3qPKEjMa88Ht97l6/Rqbtuef/dP/lsmsoSxgb1wjVAEOhi6y3XQ4F+jdQEDQ9o7VsEESqXRJShGXAi568BKPQGqNADbrJaVWmJQ1b0JZQhL0XUuSILXi2ePHPHz0hIghRMfg4Z23v8+oshipKMZTfAysXe6ldipRmUA5LpBK5ZxfPeLV1z7P+eotHjy+g0gDm/MTzKTJuRgxgswYpGGIrDcBNwRqo7DkCeb+4QFPnz2gKCdMRk0OMoqevu/Ym0159OBeznaQ2bw/OMcARBcQKeVprXOcnp9xdDDjYH9Gu7jAykRhDW3vCAKG6Bl8JiYHqRhXFVJIjJAoo6AOED3taqB3ASc0IUEKuae5WF/kdDUdiQRsWdCMK4ZhzaSU6BhJezUhQFFWjEYV40nNZz/7ElpF2tUGqTX1eMzZ+YR3vu95/HTO17/+HgfXj9k7SlD1ubf4CagUn4Af4d92fbRHdwn3/GgBE7xAu4uPFLyPfNWHSKj0kY9Ksv0sIXbZnUmo3dQse2RjXJNSi8YiKIg7vFRyAXwWh8YYc6CNVpS1QQrFsNYUhaIqoC4iKxEQoqGyFYQtQ+xJqSa5AdeuSM6hJ2OkEBijmYwbjEikkHB+QBIpjKbzMMSE94G79+5x/8FdPld/ntX8nPPzxzSTktGoYjWZUCjDcr5gtVygpOD0/Dynde3CogcMKUS8z73JIDUhSYw0+OjRCazRl79ZmrJECMHgMwI/JnI4kfc8ffgEXVWMmgnSFmhqKhWpVKLUCpkM0Xla59DKIGPBqJzgQqJdbRntz0AXtJ3j6rUbvP/+A1bLNUapnLrlY550Rg19ZL7ccLLoSDFRFZZSK6rCMJuMODi6wqaN3LvzPoWGYdiy9R1Hs4pJrdk2JecXS6KQuBDxKRJTxGgIQpKkYjSZcvX4KqXVXNk74Pam4/qNhm3veff9u/TO77BPCSEUm/WGkczB31op6ibn/hK3dMsN7eCJSVDZTMKOg2ezcaA9Q79ltbxgNG64cfMqeyPL4uSMIQia0R7HR4fUlWBoL/j0y0eIsGH/szM6v2HjInvTA8LmJd4833DnzjPefecRN1+5Qd0IlMo9bvUXfEf+uNdPUbG7LGQ/AvrcfezP//dHniGL9T5S9S5jGHNuhYh5mCGFIqXcuI/R0/crRHqKFAWSCUpMSF6RBodwLVo7hAmk6JAyksRACFvqCVy5VkAqULHkwZ7n3v01/aBzmtYuREgiKa1lMi4YzyRaBJIfsl+ysvTdQNsPaCNRpiK5hHfgROLZ8ydoI3jw4H1GVcWkzvDJ9mLO5vkZVmlSDCiZWO98nzlqQfCZV15Dzw55+3s/oFssqaoa53pQkiGCTD1Skr+vzC8AfhfpGEKWTeRMD3BdiwsDldZ0/YZSk6m/WtIYmNYFwTtGxwesF3OG4DChpA8aqQRSGrwTlIXie9/7NtvW0242bNY9RWEzCl8XBCTBCdbbnrP5luUQqMuS2WRCdAPBB5bzOZv1mu2QhciFihQSZPIsTx7wzskjtDSIEOmHQAr5elBaIZXC+ZwjsVpteO/2HWajhhQCy/UWnwTPT89RpmTWTOjbNtOLEZkqvemoqgIhsgsmCUHZJArn+ZkvfJmbN2/yr//wD3ly7wMaY7GVZEjZdhaHnsW84+rVMUUzw5+tUDZyfOWAG1cmHMzyy3L77C2EW/Do8QpRK1J5SN8eoKJFypL1Zs69e6eslpHxTKIsoNzHdmf+uNZPVbG7tIaJF8OJy/dfPl7uPyR/XrHLM4nAh8XwR5wX4sMprtxRY0kRrUC4HkILDCASMloEG1J6SuhPEbJBSUtMAe86gnfYKmV7mVSMm4rXXlO8e9vx3geeR08cadBMR1OuHR7RLZ9RNxGXeqxKhLjT8kkYZEJpQRQAmspaNAonFGVwjGNJjB6VEkO7pltHNAKZBEkmjBEE3yNCRETQSjOqDdevHvHv//3f5e7td/n9f/pP+MLnXuFb3/ku296RCGjRUwiDThEtzC4PV0KIROfxAVyS+JCzJIgO5zxCrtFYcAO6KHNceXDYQlFWltVC0nuFcJpJMigkoY90fouLHqMU48bSD46IzgMT51HK4mP2Dq+7gXXvcDLy6isv8+XPfY4/++pXcSHw/OmzPDRBoQlYu4MlyGzu90MgREfZlNRVyWLT0g4DSiuuXr/Cr/17v8q/+aP/m67t6daO9WKFkYo+wLrt6T00oxFSCoIOiATKB+qqRtnM7RMI+mFgiAFPRMjEl774GYzSTGqD9AmdPFUJmII2JvowcPX4mMmoYjSu+fTnX6ZdrqjkwP5ky6zqEfGc1eoJw2bLcrWh3DtmMIHWOU7O5/gAMWqWi46+SyByj9rHvyp2P0Frd3R9gXy6fPxQOJzX//fO7ocK24vhBWQslIeYL0qZQAixy32QCGVJvSb5FTEFehcxpkapBZ47pPgMKa8jxAEiZslCVU2Rcsxgegq7T1lOKEbPSDZiakdgweMnHXFYE1vLlZGlKDzrfouKnsIanHMkZYg7JFBygRChGVUEYekjFKnAhQEls63t/XffR0eBVBbvHEE4vBYIGZE6W6CGziNj4J3vvsl7b7/FlanmN37mkIIzDr9yxHZwuGFLjAIhNJttx8ViA9IwndY8eTbPw5yoiFHRRc2QAkmAlZKmKjGC/6e9M+ux7Lrq+G+PZ7hD3Zp6ttvudGdwYiIIAiSEgCckQAqvPCA+G0gInogQD0h8AECBTBAP3fHQbrvt7q7pTmfaIw/n2g5BSSAkINP1fynpatd9qTrrrL3Wf0CECElSWIvWiRg869USqRSJyLZzbFqPSYqQxy47CiirguW6pesD2hYMLjH4ROh7Ula0PuKyGBPBRObpyTPWZ+f4tsUwCuyllGgjUCJSGYUUgWlVYLXB+UDbOHzy1IXB+zFqsawrpgbeuf9v3L5xzO/+7u+w3Wz5m7/+BtuhwyVJ7wNffOXLbLdbLs7OxnhrISFFFJLSFLR9R9MoTGVIcRy/KAl//3d/S6kUhoBWidIoou9RhaW2E87WPUZKrl+9wou3jjFFJraGSrTUcku/ep8cNiAHXMokjmj7GzTDnLNNz8V2i3OenCJD39D3G7ybY0vzSfDBZxnPSbETu5AdQc4f+3J93JX9cEf36fkf/1X501/L41wOEfChQwWPtglEJqW06+wEMityVvR9CzmjbYmSnhRW9MMFSii0WoA6RCiBrQpIE2KsEEpjZwoz/TxF8xBTn6DUlrp2PP5gSXJghp6p9KTUg3TIOG6DSzNed7OCJASi9xT1jHKyx6aLxH4MJxrVA5FN78nCjrrNIMlRorRksb/PwcE+q23Dphto2zMInhw9KTpu3bjKvb3ERAbS3OCywgePT5qYFN2gaYcanyRClVwpD7joE4/PWpqzjpgzQhnKqmRvXrM3q8FHui7iPVTVDDes8M6Reoe2BVJDNwxs245azEXZhDgAAA9rSURBVCjnE5TWJGC7zfzg7Q8pqhl2algtz2k2LcSMLWqSDBADQguiAN91o0mD0iOxNkGKjlmOTMoxRtHIkfNX2BIhRuNN4cfRQ20EtrRoK7CpxW8GZFnx/e/8MyFlnPOsNw0+SQ4Oj3G9Y7vekEKgtJpAJsnR8EEpifCCZr2hTGO+RGE0oirAO3IedjNZiVQRrQTVrCKqksXhdS7WK5rVmkJd5WhPY+aGUmTcekPc9PTOMzhNoGZIBY/ePUHOBOtty2a9JboBW8DxUUXOK2KYIvM+WhS/iAfzfxX/L4rdT3vn/JA69iee+I+b1h/3rWl3bnzjCgG96xiGhlqNZpyZuKNUSHIS5AQx9AzDBq0NhRLkkEghoc0MW11HiDtkeUiSCaEgxZIgPUFmvJsQ8xFerMhmw5VrCi0HotuyPD3HipYaj0gZoicZScygpKCeTdDOgRzQZYmtamLKLBZz5rLgfLlmuVziXGDTB0JSDJ0jCUVhFDFnLi7WnJ2t8SnjYhxpMz6SvadQkgqYq8Q0D8QUQAmcGuhjC8rQ6cRROSHJkiQs12aGRtXMTxo+XD1gr55SL45IhJ2utGZxMOOZh257QcgSnwCh0WRIkZwdUo1LDqMrut5RTg05St579wOck7x072Va35Oix7uAlIIUMzJnjMiUZcELL93h7NkpvncURU0KmU3XIIDKeVSpqQqLJO1stmD/4Jj+yWN0huADhRntnUQaUMlj0KgMq/OndC6NwdRZsF73OOc5eXaCFJnkPZ3vkDkhpSGmhA8ByPjBIdVYRJ0LKDKCRFUYiB6pMkIJgvd0Q4vPiTv3XuVavMH7j97iq195EZsNszIhYwtqIPlI8iWkGVkYIh2m9EjToWVAhIyWisXccOXKBMGG4NfkNN1FG3y28f+i2P1s+NGr6o8Wwx9XHD+e5+1CuPNIYjHWgEokCSJLSB7iACkQHIh8gNUDSmwRfglijjIvo8wXxwAfOVpPgebjbAytZggVSUqiyzmqvE0IIMyWvX5JnR9S2IgVCYsghADR4WnxegJVTRIKSWRSTKiVYXY45aPTNao06Kqi8wPbdYHbdPhuQEhLMLAOnplQFDnT9Q6lLWnn6WdsSUiOwSe0NMSgkE4Bo1V8UgKrNFIWxARKBBIOoQTbrqEUGhV6JipTVYZUz+g2LT506L2KpAxtasZRQVY8O7lgUgEZJBGTFSJBdIFnp09JxmKrmtx43v/wgpNzx+//wdc5PXtKt3zGbLbP0EdWq4Ys8qhHTgID9MtzSiJGQiEEaEsrHcZarBwgQwwClKWeL3jp3pd4843X8S7sZIOjM7BUilLr0XlaGeqypO+bsZuUmbqStMNIR7JGQQpIkckhEnJCJkmSHt9BzAEfE0VMZOeZaMMw9OQMTdtSWo3ShvlsynYtRxeeesZps6bvOlanp8TNKeWNCmt6hIj0AaLL9DGyCQ1BTlF1zaHeY7sN+PWSygZuXJtz++U5R/selU9JzuBdhbH25/nw/Z/guSt2QvykDu+TUz/m0939VYhPFrIjE92ickAKD4yGmyJnUoqEwUEGo/fQU0Fyp/jQIoTDVAIIxPB0x6e7ipILYo5IXZGTRmFQyoy35qGjNHujTVDbYEVA6ojJY4C0QuKUJCdH1sVol9R5chg7B6UsUltm80OeXrRsTlcIodm2PZumw7kB9FgEY7AM0ZNiRgmJTKMeMwKDdyQBtiopSoUTji5JdPajH2qQSDE6vCgpmc5mo6h+GKgE2KJg1TpMFhwvZtz95V/lW995jbOLhqFrWSUYjCeGQBaCpu2RUiOJSBGJkZ0KItN0DrHacn2yz7OzNY8/OuWVr3yNTTPw+KMTvGtHx2phcWFLCBElMloKFtMKFbuxk1aJFBrwkVILynJM50JIQhjF98fHV3jpzh2+9S//jJIaxKguSezoRlKhjUTrAiUN3m0JCZQsGDNQItEk+r7DKElhCzCa4AZiGuM6nQtoq4gx4XaLCh17Cil20YojMT0lQGqEKdC25s7nX+W8cbz++ndY6IHl6QekO1eQpkSaKfW+Yt4K5tJwXSg2W0/Xw/nFQE49RdlwfHXB7dtXuHf3CsaumdcKqyC6Lc4VfNZ7u+eu2P3P8UOFcDcHlEKSdpZQHys0IBNiIANGW3IyIw9PCwgXIAKwIac1rn8dZL0LYZ7swlsYVRdpDIohRJILGMC1DdvlCdeuzGmfrFE5jqHNQiPqmrgZIFoSFSFGnPejWkRFfDSYomS5vuDkYkkIgc3qY5tyCDEREFy/9SLr81N82xBS+KQPTkqMBGmZsdbgw4atSzw6y8xzj8ogkRhjsJPRYqndBJzz49ZRaryLhCCJPlFqzQ9e/z6L+ZSivsHp6pQ+hZFwrSVDn/E+4NeOulAYpcY4RSEYkiVKjYuGdx495clHJ7R94o037/PWOw9JOZCiI+dI34/27yFGlBFUlaGwcDSb4oeBQTp8HE07+zCQokMYg0+RwQduHl6FGPjGX/0lru9QacyrcyGTpUaaArRAGkWIifOLJdEnQpZcu3WTYup5cvYmzvsxLDsGtBDkmBDKoOQ4MjDWEKInxozSBUVZUuIZ+p6YI5NJTVmWhJw427QgBFW5R4wV7z98n2HbkuuO2F5A2EOaI3RdU+1J7Ow60XnwDW7YsG07jo4SvZvyuXsVMWn2F5a9+S6y0SqsMuTYQ1j/bz5kvxBcFrufGZ/O9QQKKQ3s7HfGsLKRJBwzsHvrizxqL6URZLHBxw7yGtgidtQMsEhpSdjRVkpmiCNrXptM169oV08YhobN6ow5nsIkjFb4oJBCMihHEzucKyBksg+Uswm6KtHVlKGFro2sly3LzQolDYu9fbabNSHCl7/yVX7vD/6Qv/jzP2ONIMfRBLPQluAG+rZBiYySCasmrDeJ+xuHjQmRRy+ZkAfKiWA2n5JSwg1jIn0hI4WWDD5xERRDyLgU2VvUDIPg13/zt/nmN/+BZhjQWZCUwofd5lQqiiSIKaLMKOSfHxwibcn9Bw+IIaOUpmu3uKEnhNHFAznqc8NOvfIrX/sVNmePuXI44Wiv4sPHHwASnSVqUtDRsmkdIkW0SBTG4pNkvW7GDhxBSJLeR3zOKK25fecuRSE5ffoRQ9MgshhpHEiuXbvFIgr+9Y238CGMLzU5KkyUNgghCH70VcyAc46irPj8F15BSsnm5COuXN/jvffeY4iGyeSAr7z6Kt/+7rfYrE5ZffCEJycDm22DJXEwN1Q2Y1RJPXuBVE2QInO8kMR2ILk1MW6ZbE+p1id0TcO144roBbJWTGeawpbENFJP7M4a/rOOy2L338Z/XmLknYpiTJWSn7LipUBpNc6alIY8JrxLEYlh/MfOeQb6Jsrso8wVELNRi4tGCEkijCHJVhL7hA8NKTUEoSjnxxh3gWodDJ7kA0RDrUbnkZQjYRjoh4HJYo4tBftHB7z77Qesl2tcHxBZIqXi7ue/wP37b+K3Pc+ePuODR48wxtC5AWsN6ILWRdKQCS5RV5qyMNAZfNScdx3OKULo6WMi6gK59OQPzoh5nG3KHKmNYVoYhO9J1YRgpxhruTg/JxeWg6Njoo/jIkEqdFmSEWybhiAkIWuEMIQ+Iq3iT//4T/jHf/om7z58hC7H8UFdWpSUbLc9IUZ8CDuyt+YLX/oSq/WaHAN1WXN2seX46i3S0yds29HW/IuvvMKDtx6xObvAVCVRWJ6erSmMRKuCRGQz9CA0vXPsTydMZ3vcunmFuih56/59Qt8RYyYS+ZdvfwtdTrG2YGi2+BiQ0iKEHBNNYhpHIyS6vkdImEwmLA6PCCHSdwPzw2NuYHj0/vs0Q+TBw0ckbWkaR+gCqQAtImWVuHl1ymxaoMyMsr4KkynDsAYtEGWJrA4QwjHfu8rk8BzfntOtLui2W3yhqRd7WDtFmxJdWKKIn0RQfZbxXFg8/Xz/TP9BQMYn/ngZBAlEhOwgO0QOow1o+rj4QRZ5LGbKjHZEco4ur6LsMZljkDWoiJS79HYUQpWjfXfoid05qV9ipje5++u/xfbxe+RmNeo6bT1u9VwgoOiTJGaBKTXVrCIbQSoK7r/5Ns+eXuC8RynF4uCAk5NTrl27zou3X+b05Jw3X3ud1fKM6Hqstdy4+TL37tzj/OkJcWddbkVCKcXVl+9y72u/wTtPTlg2DV2WODPBo+izpkkab2raqNgOmc2QEFZBWVHPZhwdLOibDV234cGDN/Cdg5wxxlBUNSFBH/LIlUsKn6HzgaKe8O7Dh7zz9jsokSk0zCeWaSkxIlIawdWjfXIcCNFhbcnt27f56PEHRNcxn1TcvXOXHCPNZrVTnNRU5ZS+G9huu3FKq/SYOxGhGxzt4BgSNJ0jZjDW4t1AigGywHXDyHHMo8qlHQaaviUkiBmG3pFSJsa4E/UrhBSE6MjZU9Vjtsf1m7d45dVf4tHDd3np9ov80R99nfuv/RvL1TmTWUXft3TrFpU8Wgas7vnC3SPu3d7jxq0DFjduIat9XIpkWkLoSRhEMUWVE6SZYMo9TL3ATBeY+QJVTCnqfexkgZ0uUOUUVUxRdoKuvnZp8fT84EcL3Q9//qnyQuycjXMaf8oMOfuxA5SjCYEQFYKalDNoTRY9mXocQIsxDJpcIkSFMhWBgSAsytTM5ofgDnh0/32Wy46pT8zKApk1qfcIMdJOjNCUWiJKjVAZUyjOL54hZSKGkYpg6ooUE4eHh3zuc/d49N5jjFQ0fYfrG5Qcg57PTi9Yn6zZrrdUypCDZxharty+zu1XXuL63S/z9ocPEbRcnF2QFYidcJ0EEUFZW1LfIYmoUlNOKrSM9OtTbixq1oPk6WrNdvDYsqAua4pqwtUbL2DLmjdeu8/qfIVWApcyy82GpmkwSjMtNZNS8cL1I+68eJN33voBy9UGCBzuVSgtmOwf8Wu/8Ws8fPsBOQv8EHjnB2/RNytIPaREDIHT5YbYRYqiYLtt2TQ91mqUZIxHlODSeIUtbcnh4RExeN5+623KnSFqThCCJzKej3EkUSul0EYT88dUlrTjbQaMgunEknOkKCwvvHiL737vu0wqw/3Xvse7b3yPdvkMFXsq5Tm6dRXRBkwekLnjxs097r284OXrBUdX50wWs1HALzwxbfEpoE2BlhGlNElUZDMl2T1SsYfa61n4AaNGdxy0ISsNQo2ejp9xiJzzTz91iUtc4hKfcXz2Y74vcYlLXOK/gMtid4lLXOK5wGWxu8QlLvFc4LLYXeISl3gucFnsLnGJSzwXuCx2l7jEJZ4L/DtyZDuOFJegtwAAAABJRU5ErkJggg==\n",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": [],
            "needs_background": "light"
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": [],
            "needs_background": "light"
          }
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "b8UwsBz1xF_H"
      },
      "source": [
        "Run the cell above a few times and you can see the different random augmentations on different classes of images. Because we're going to add the data augmentation model as a layer in our upcoming transfer learning model, it'll apply these kind of random augmentations to each of the training images which passes through it. \n",
        "\n",
        "Doing this will make our training dataset a little more varied. You can think of it as if you were taking a photo of food in real-life, not all of the images are going to be perfect, some of them are going to be orientated in strange ways. These are the kind of images we want our model to be able to handle.\n",
        "\n",
        "Speaking of model, let's build one with the Functional API. We'll run through all of the same steps as before except for one difference, we'll add our data augmentation Sequential model as a layer immediately after the input layer."
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "koH2FCIaAVe9"
      },
      "source": [
        "## Model 1: Feature extraction transfer learning on 1% of the data with data augmentation"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "xbj-Z7Bhut-Y",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "b6fb03ce-c99e-496e-9b67-dd8c504238e4"
      },
      "source": [
        "# Setup input shape and base model, freezing the base model layers\n",
        "input_shape = (224, 224, 3)\n",
        "base_model = tf.keras.applications.EfficientNetB0(include_top=False)\n",
        "base_model.trainable = False\n",
        "\n",
        "# Create input layer\n",
        "inputs = layers.Input(shape=input_shape, name=\"input_layer\")\n",
        "\n",
        "# Add in data augmentation Sequential model as a layer\n",
        "x = data_augmentation(inputs)\n",
        "\n",
        "# Give base_model inputs (after augmentation) and don't train it\n",
        "x = base_model(x, training=False)\n",
        "\n",
        "# Pool output features of base model\n",
        "x = layers.GlobalAveragePooling2D(name=\"global_average_pooling_layer\")(x)\n",
        "\n",
        "# Put a dense layer on as the output\n",
        "outputs = layers.Dense(10, activation=\"softmax\", name=\"output_layer\")(x)\n",
        "\n",
        "# Make a model with inputs and outputs\n",
        "model_1 = keras.Model(inputs, outputs)\n",
        "\n",
        "# Compile the model\n",
        "model_1.compile(loss=\"categorical_crossentropy\",\n",
        "              optimizer=tf.keras.optimizers.Adam(),\n",
        "              metrics=[\"accuracy\"])\n",
        "\n",
        "# Fit the model\n",
        "history_1_percent = model_1.fit(train_data_1_percent,\n",
        "                    epochs=5,\n",
        "                    steps_per_epoch=len(train_data_1_percent),\n",
        "                    validation_data=test_data,\n",
        "                    validation_steps=int(0.25* len(test_data)), # validate for less steps\n",
        "                    # Track model training logs\n",
        "                    callbacks=[create_tensorboard_callback(\"transfer_learning\", \"1_percent_data_aug\")])"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Saving TensorBoard log files to: transfer_learning/1_percent_data_aug/20210216-021736\n",
            "Epoch 1/5\n",
            "3/3 [==============================] - 10s 2s/step - loss: 2.4533 - accuracy: 0.0299 - val_loss: 2.2204 - val_accuracy: 0.1645\n",
            "Epoch 2/5\n",
            "3/3 [==============================] - 4s 2s/step - loss: 2.1931 - accuracy: 0.0897 - val_loss: 2.0827 - val_accuracy: 0.2796\n",
            "Epoch 3/5\n",
            "3/3 [==============================] - 4s 2s/step - loss: 1.9338 - accuracy: 0.4006 - val_loss: 1.9872 - val_accuracy: 0.3536\n",
            "Epoch 4/5\n",
            "3/3 [==============================] - 4s 2s/step - loss: 1.8485 - accuracy: 0.4954 - val_loss: 1.8808 - val_accuracy: 0.4095\n",
            "Epoch 5/5\n",
            "3/3 [==============================] - 4s 2s/step - loss: 1.7186 - accuracy: 0.5845 - val_loss: 1.7857 - val_accuracy: 0.5099\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "svhrIqgCi27C"
      },
      "source": [
        "Wow! How cool is that? Using only 7 training images per class, using transfer learning our model was able to get ~40% accuracy on the validation set. This result is pretty amazing since the [original Food-101 paper](https://data.vision.ee.ethz.ch/cvl/datasets_extra/food-101/static/bossard_eccv14_food-101.pdf) achieved 50.67% accuracy with all the data, namely, 750 training images per class (**note:** this metric was across 101 classes, not 10, we'll get to 101 classes soon).\n",
        "\n",
        "If we check out a summary of our model, we should see the data augmentation layer just after the input layer."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "lloN15WdPkgb",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "e79a8aa2-44c5-4ba7-b6bc-54844e4d24f3"
      },
      "source": [
        "# Check out model summary\n",
        "model_1.summary()"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Model: \"model_1\"\n",
            "_________________________________________________________________\n",
            "Layer (type)                 Output Shape              Param #   \n",
            "=================================================================\n",
            "input_layer (InputLayer)     [(None, 224, 224, 3)]     0         \n",
            "_________________________________________________________________\n",
            "data_augmentation (Sequentia (None, None, None, 3)     0         \n",
            "_________________________________________________________________\n",
            "efficientnetb0 (Functional)  (None, None, None, 1280)  4049571   \n",
            "_________________________________________________________________\n",
            "global_average_pooling_layer (None, 1280)              0         \n",
            "_________________________________________________________________\n",
            "output_layer (Dense)         (None, 10)                12810     \n",
            "=================================================================\n",
            "Total params: 4,062,381\n",
            "Trainable params: 12,810\n",
            "Non-trainable params: 4,049,571\n",
            "_________________________________________________________________\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "EPwjk5CAj9cZ"
      },
      "source": [
        "There it is. We've now got data augmentation built right into the our model. This means if we saved it and reloaded it somewhere else, the data augmentation layers would come with it.\n",
        "\n",
        "The important thing to remember is **data augmentation only runs during training**. So if we were to evaluate or use our model for inference (predicting the class of an image) the data augmentation layers will be automatically turned off.\n",
        "\n",
        "To see this in action, let's evaluate our model on the test data."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "RgWXERdy8nXP",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "8c18041b-6107-4d1c-bc54-59e2bc189a8a"
      },
      "source": [
        "# Evaluate on the test data\n",
        "results_1_percent_data_aug = model_1.evaluate(test_data)\n",
        "results_1_percent_data_aug"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "79/79 [==============================] - 10s 122ms/step - loss: 1.8055 - accuracy: 0.4728\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "[1.8054912090301514, 0.47279998660087585]"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 24
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "OABaDYcokefk"
      },
      "source": [
        "The results here may be slightly better/worse than the log outputs of our model during training because during training we only evaluate our model on 25% of the test data using the line `validation_steps=int(0.25 * len(test_data))`. Doing this speeds up our epochs but still gives us enough of an idea of how our model is going.\n",
        "\n",
        "Let's stay consistent and check out our model's loss curves."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "ShCcuguspbyz",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 573
        },
        "outputId": "e45a0cd2-5ce5-4266-fdde-6fabfc91a6a9"
      },
      "source": [
        "# How does the model go with a data augmentation layer with 1% of data\n",
        "plot_loss_curves(history_1_percent)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": [],
            "needs_background": "light"
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": [],
            "needs_background": "light"
          }
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "kEPFBiDPk-ig"
      },
      "source": [
        "It looks like the metrics on both datasets would improve if we kept training for more epochs. But we'll leave that for now, we've got more experiments to do!"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "1cd5jPoPC2Ug"
      },
      "source": [
        "## Model 2: Feature extraction transfer learning with 10% of data and data augmentation\n",
        "\n",
        "Alright, we've tested 1% of the training data with data augmentation, how about we try 10% of the data with data augmentation?\n",
        "\n",
        "But wait...\n",
        "\n",
        "> 🤔 **Question:** How do you know what experiments to run?\n",
        "\n",
        "Great question. \n",
        "\n",
        "The truth here is you often won't. Machine learning is still a very experimental practice. It's only after trying a fair few things that you'll start to develop an intuition of what to try.\n",
        "\n",
        "My advice is to follow your curiosity as tenaciously as possible. If you feel like you want to try something, write the code for it and run it. See how it goes. The worst thing that'll happen is you'll figure out what doesn't work, the most valuable kind of knowledge.\n",
        "\n",
        "From a practical standpoint, as we've talked about before, you'll want to reduce the amount of time between your initial experiments as much as possible. In other words, run a plethora of smaller experiments, using less data and less training iterations before you find something promising and then scale it up.\n",
        "\n",
        "In the theme of scale, let's scale our 1% training data augmentation experiment up to 10% training data augmentation. That sentence doesn't really make sense but you get what I mean.\n",
        "\n",
        "We're going to run through the exact same steps as the previous model, the only difference being using 10% of the training data instead of 1%."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "nv75Z8BkuTmy"
      },
      "source": [
        "# Get 10% of the data of the 10 classes (uncomment if you haven't gotten \"10_food_classes_10_percent.zip\" already)\n",
        "# !wget https://storage.googleapis.com/ztm_tf_course/food_vision/10_food_classes_10_percent.zip\n",
        "# unzip_data(\"10_food_classes_10_percent.zip\")\n",
        "\n",
        "train_dir_10_percent = \"10_food_classes_10_percent/train/\"\n",
        "test_dir = \"10_food_classes_10_percent/test/\""
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "9Vcnuoorminm"
      },
      "source": [
        "Data downloaded. Let's create the dataloaders."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "0eZ4SzbiC9zX",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "b2fe4146-8bce-46eb-daa8-036cde10a909"
      },
      "source": [
        "# Setup data inputs\n",
        "import tensorflow as tf\n",
        "IMG_SIZE = (224, 224)\n",
        "train_data_10_percent = tf.keras.preprocessing.image_dataset_from_directory(train_dir_10_percent,\n",
        "                                                                            label_mode=\"categorical\",\n",
        "                                                                            image_size=IMG_SIZE)\n",
        "# Note: the test data is the same as the previous experiment, we could\n",
        "# skip creating this, but we'll leave this here to practice.\n",
        "test_data = tf.keras.preprocessing.image_dataset_from_directory(test_dir,\n",
        "                                                                label_mode=\"categorical\",\n",
        "                                                                image_size=IMG_SIZE)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Found 750 files belonging to 10 classes.\n",
            "Found 2500 files belonging to 10 classes.\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "ZlHIzDo5mz5L"
      },
      "source": [
        "Awesome! We've got 10x more images to work with, 75 per class instead of 7 per class.\n",
        "\n",
        "Let's build a model with data augmentation built in. We could reuse the data augmentation Sequential model we created before but we'll recreate it to practice."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "RuuP1FWADHfc"
      },
      "source": [
        "# Create a functional model with data augmentation\n",
        "import tensorflow as tf\n",
        "from tensorflow.keras import layers\n",
        "from tensorflow.keras.layers.experimental import preprocessing\n",
        "from tensorflow.keras.models import Sequential\n",
        "\n",
        "# Build data augmentation layer\n",
        "data_augmentation = Sequential([\n",
        "  preprocessing.RandomFlip('horizontal'),\n",
        "  preprocessing.RandomHeight(0.2),\n",
        "  preprocessing.RandomWidth(0.2),\n",
        "  preprocessing.RandomZoom(0.2),\n",
        "  preprocessing.RandomRotation(0.2),\n",
        "  # preprocessing.Rescaling(1./255) # keep for ResNet50V2, remove for EfficientNet                 \n",
        "], name=\"data_augmentation\")\n",
        "\n",
        "# Setup the input shape to our model\n",
        "input_shape = (224, 224, 3)\n",
        "\n",
        "# Create a frozen base model\n",
        "base_model = tf.keras.applications.EfficientNetB0(include_top=False)\n",
        "base_model.trainable = False\n",
        "\n",
        "# Create input and output layers\n",
        "inputs = layers.Input(shape=input_shape, name=\"input_layer\") # create input layer\n",
        "x = data_augmentation(inputs) # augment our training images\n",
        "x = base_model(x, training=False) # pass augmented images to base model but keep it in inference mode, so batchnorm layers don't get updated: https://keras.io/guides/transfer_learning/#build-a-model \n",
        "x = layers.GlobalAveragePooling2D(name=\"global_average_pooling_layer\")(x)\n",
        "outputs = layers.Dense(10, activation=\"softmax\", name=\"output_layer\")(x)\n",
        "model_2 = tf.keras.Model(inputs, outputs)\n",
        "\n",
        "# Compile\n",
        "model_2.compile(loss=\"categorical_crossentropy\",\n",
        "              optimizer=tf.keras.optimizers.Adam(lr=0.001), # use Adam optimizer with base learning rate\n",
        "              metrics=[\"accuracy\"])"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "9RiP2aR6nqyK"
      },
      "source": [
        "### Creating a ModelCheckpoint callback\n",
        "\n",
        "Our model is compiled and ready to be fit, so why haven't we fit it yet?\n",
        "\n",
        "Well, for this experiment we're going to introduce a new callback, the `ModelCheckpoint` callback.\n",
        "\n",
        "The [`ModelCheckpoint`](https://www.tensorflow.org/api_docs/python/tf/keras/callbacks/ModelCheckpoint) callback gives you the ability to save your model, as a whole in the [`SavedModel`](https://www.tensorflow.org/tutorials/keras/save_and_load#save_the_entire_model) format or the [weights (patterns) only](https://www.tensorflow.org/tutorials/keras/save_and_load#manually_save_weights) to a specified directory as it trains. \n",
        "\n",
        "This is helpful if you think your model is going to be training for a long time and you want to make backups of it as it trains. It also means if you think your model could benefit from being trained for longer, you can reload it from a specific checkpoint and continue training from there.\n",
        "\n",
        "For example, say you fit a feature extraction transfer learning model for 5 epochs and you check the training curves and see it was still improving and you want to see if fine-tuning for another 5 epochs could help, you can load the checkpoint, unfreeze some (or all) of the base model layers and then continue training.\n",
        "\n",
        "In fact, that's exactly what we're going to do. \n",
        "\n",
        "But first, let's create a `ModelCheckpoint` callback. To do so, we have to specifcy a directory we'd like to save to."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "11M6B736noly"
      },
      "source": [
        "# Setup checkpoint path\n",
        "checkpoint_path = \"ten_percent_model_checkpoints_weights/checkpoint.ckpt\" # note: remember saving directly to Colab is temporary\n",
        "\n",
        "# Create a ModelCheckpoint callback that saves the model's weights only\n",
        "checkpoint_callback = tf.keras.callbacks.ModelCheckpoint(filepath=checkpoint_path,\n",
        "                                                         save_weights_only=True, # set to False to save the entire model\n",
        "                                                         save_best_only=False, # set to True to save only the best model instead of a model every epoch \n",
        "                                                         save_freq=\"epoch\", # save every epoch\n",
        "                                                         verbose=1)"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "R9T4MdK1nynZ"
      },
      "source": [
        "> 🤔 **Question:** What's the difference between saving the entire model (SavedModel format) and saving the weights only?\n",
        "\n",
        "The [`SavedModel`](https://www.tensorflow.org/tutorials/keras/save_and_load#save_the_entire_model) format saves a model's architecture, weights and training configuration all in one folder. It makes it very easy to reload your model exactly how it is elsewhere. However, if you do not want to share all of these details with others, you may want to save and share the weights only (these will just be large tensors of non-human interpretable numbers). If disk space is an issue, saving the weights only is faster and takes up less space than saving the whole model.\n",
        "\n",
        "Time to fit the model.\n",
        "\n",
        "Because we're going to be fine-tuning it later, we'll create a variable `initial_epochs` and set it to 5 to use later.\n",
        "\n",
        "We'll also add in our `checkpoint_callback` in our list of `callbacks`."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "ZOgMGhi0nx0u",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "f6c6167e-1766-4867-9183-a08e1810efb4"
      },
      "source": [
        "# Fit the model saving checkpoints every epoch\n",
        "initial_epochs = 5\n",
        "history_10_percent_data_aug = model_2.fit(train_data_10_percent,\n",
        "                                          epochs=initial_epochs,\n",
        "                                          validation_data=test_data,\n",
        "                                          validation_steps=int(0.25 * len(test_data)), # do less steps per validation (quicker)\n",
        "                                          callbacks=[create_tensorboard_callback(\"transfer_learning\", \"10_percent_data_aug\"), \n",
        "                                                     checkpoint_callback])"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Saving TensorBoard log files to: transfer_learning/10_percent_data_aug/20210216-021854\n",
            "Epoch 1/5\n",
            "24/24 [==============================] - 16s 452ms/step - loss: 2.1809 - accuracy: 0.2156 - val_loss: 1.5099 - val_accuracy: 0.6299\n",
            "\n",
            "Epoch 00001: saving model to ten_percent_model_checkpoints_weights/checkpoint.ckpt\n",
            "Epoch 2/5\n",
            "24/24 [==============================] - 9s 358ms/step - loss: 1.4534 - accuracy: 0.6360 - val_loss: 1.0699 - val_accuracy: 0.7582\n",
            "\n",
            "Epoch 00002: saving model to ten_percent_model_checkpoints_weights/checkpoint.ckpt\n",
            "Epoch 3/5\n",
            "24/24 [==============================] - 9s 375ms/step - loss: 1.0684 - accuracy: 0.7427 - val_loss: 0.8586 - val_accuracy: 0.7878\n",
            "\n",
            "Epoch 00003: saving model to ten_percent_model_checkpoints_weights/checkpoint.ckpt\n",
            "Epoch 4/5\n",
            "24/24 [==============================] - 8s 338ms/step - loss: 0.9191 - accuracy: 0.7720 - val_loss: 0.7781 - val_accuracy: 0.7993\n",
            "\n",
            "Epoch 00004: saving model to ten_percent_model_checkpoints_weights/checkpoint.ckpt\n",
            "Epoch 5/5\n",
            "24/24 [==============================] - 8s 332ms/step - loss: 0.7953 - accuracy: 0.7950 - val_loss: 0.7229 - val_accuracy: 0.7944\n",
            "\n",
            "Epoch 00005: saving model to ten_percent_model_checkpoints_weights/checkpoint.ckpt\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "elbLc46m1kAz"
      },
      "source": [
        "Would you look at that! Looks like our `ModelCheckpoint` callback worked and our model saved its weights every epoch without too much overhead (saving the whole model takes longer than just the weights).\n",
        "\n",
        "Let's evaluate our model and check its loss curves."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "3KBwXaDwvlEX",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "5944515d-755e-48dd-b381-870b9a769730"
      },
      "source": [
        "# Evaluate on the test data\n",
        "results_10_percent_data_aug = model_2.evaluate(test_data)\n",
        "results_10_percent_data_aug"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "79/79 [==============================] - 10s 119ms/step - loss: 0.7047 - accuracy: 0.8080\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "[0.7046541571617126, 0.8080000281333923]"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 31
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "W-TeYMc_Hh0p",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 573
        },
        "outputId": "83741585-8e32-45b8-9718-71a2cfbd8b65"
      },
      "source": [
        "# Plot model loss curves\n",
        "plot_loss_curves(history_10_percent_data_aug)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": [],
            "needs_background": "light"
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": [],
            "needs_background": "light"
          }
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "N-yHYHnx2GZE"
      },
      "source": [
        "Looking at these, our model's performance with 10% of the data and data augmentation isn't as good as the model with 10% of the data without data augmentation (see `model_0` results above), however the curves are trending in the right direction, meaning if we decided to train for longer, its metrics would likely improve.\n",
        "\n",
        "Since we checkpointed (is that a word?) our model's weights, we might as well see what it's like to load it back in. We'll be able to test if it saved correctly by evaluting it on the test data.\n",
        "\n",
        "To load saved model weights you can use the the [`load_weights()`](https://www.tensorflow.org/tutorials/keras/save_and_load#checkpoint_callback_options) method, passing it the path where your saved weights are stored."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "Yo5uxm9Du_kO",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "6656e469-d0c0-4d04-bf50-3d902cbddf58"
      },
      "source": [
        "# Load in saved model weights and evaluate model\n",
        "model_2.load_weights(checkpoint_path)\n",
        "loaded_weights_model_results = model_2.evaluate(test_data)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "79/79 [==============================] - 10s 118ms/step - loss: 0.7047 - accuracy: 0.8080\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "WYTrmgeSgRkc"
      },
      "source": [
        "Now let's compare the results of our previously trained model and the loaded model. These results should very close if not exactly the same. The reason for minor differences comes down to the precision level of numbers calculated."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "8oF-zsM_wMVQ",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "9fca1ee8-875c-4e6a-ec74-a22b63a79cc4"
      },
      "source": [
        "# If the results from our native model and the loaded weights are the same, this should output True\n",
        "results_10_percent_data_aug == loaded_weights_model_results"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "False"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 34
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "L2noU9rlgflw"
      },
      "source": [
        "If the above cell doesn't output `True`, it's because the numbers are close but not the *exact* same (due to how computers store numbers with degrees of precision).\n",
        "\n",
        "However, they should be *very* close..."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "0u4N8g9mgBI0",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "102bf07f-7280-49fe-ea8f-16ee53bbd268"
      },
      "source": [
        "import numpy as np\n",
        "# Check to see if loaded model results are very close to native model results (should output True)\n",
        "np.isclose(np.array(results_10_percent_data_aug), np.array(loaded_weights_model_results))"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "array([ True,  True])"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 35
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "6srnISjohK8N",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "de0374d9-c922-4b6b-88e2-692f6f255653"
      },
      "source": [
        "# Check the difference between the two results\n",
        "print(np.array(results_10_percent_data_aug) - np.array(loaded_weights_model_results))"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "[-1.1920929e-07  0.0000000e+00]\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "C_RYtaqD0Mv6"
      },
      "source": [
        "## Model 3: Fine-tuning an existing model on 10% of the data\n",
        "\n",
        "![](https://raw.githubusercontent.com/mrdbourke/tensorflow-deep-learning/main/images/05-fine-tuning-an-efficientnet-model.png)\n",
        "*High-level example of fine-tuning an EfficientNet model. Bottom layers (layers closer to the input data) stay frozen where as top layers (layers closer to the output data) are updated during training.*\n",
        "\n",
        "So far our saved model has been trained using feature extraction transfer learning for 5 epochs on 10% of the training data and data augmentation.\n",
        "\n",
        "This means all of the layers in the base model (EfficientNetB0) were frozen during training.\n",
        "\n",
        "For our next experiment we're going to switch to fine-tuning transfer learning. This means we'll be using the same base model except we'll be unfreezing some of its layers (ones closest to the top) and running the model for a few more epochs.\n",
        "\n",
        "The idea with fine-tuning is to start customizing the pre-trained model more to our own data.\n",
        "\n",
        "> 🔑 **Note:** Fine-tuning usually works best *after* training a feature extraction model for a few epochs and with large amounts of data.\n",
        "\n",
        "We've verified our loaded model's performance, let's check out its layers."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "EfsHnkOIrx9K",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "23395730-9cee-4cb2-d687-e68f0742a45f"
      },
      "source": [
        "# Layers in loaded model\n",
        "model_2.layers"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "[<tensorflow.python.keras.engine.input_layer.InputLayer at 0x7fceca1c9208>,\n",
              " <tensorflow.python.keras.engine.sequential.Sequential at 0x7fceca1c90b8>,\n",
              " <tensorflow.python.keras.engine.functional.Functional at 0x7fcebe5bc630>,\n",
              " <tensorflow.python.keras.layers.pooling.GlobalAveragePooling2D at 0x7fcebe62b8d0>,\n",
              " <tensorflow.python.keras.layers.core.Dense at 0x7fcebe5f1e80>]"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 37
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "QpzkIVuqtbXC",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "caf47dff-456f-480f-841d-621fbd815f03"
      },
      "source": [
        "for layer in model_2.layers:\n",
        "  print(layer.trainable)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "True\n",
            "True\n",
            "False\n",
            "True\n",
            "True\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "TR7Ym5UN5tou"
      },
      "source": [
        "Looking good. We've got an input layer, a Sequential layer (the data augmentation model), a Functional layer (EfficientNetB0), a pooling layer and a Dense layer (the output layer).\n",
        "\n",
        "How about a summary?"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "w55Z7qFYsUfy",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "a3489f33-abe3-474a-d08c-fa64bb8dcdca"
      },
      "source": [
        "model_2.summary()"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Model: \"model_2\"\n",
            "_________________________________________________________________\n",
            "Layer (type)                 Output Shape              Param #   \n",
            "=================================================================\n",
            "input_layer (InputLayer)     [(None, 224, 224, 3)]     0         \n",
            "_________________________________________________________________\n",
            "data_augmentation (Sequentia (None, None, None, 3)     0         \n",
            "_________________________________________________________________\n",
            "efficientnetb0 (Functional)  (None, None, None, 1280)  4049571   \n",
            "_________________________________________________________________\n",
            "global_average_pooling_layer (None, 1280)              0         \n",
            "_________________________________________________________________\n",
            "output_layer (Dense)         (None, 10)                12810     \n",
            "=================================================================\n",
            "Total params: 4,062,381\n",
            "Trainable params: 12,810\n",
            "Non-trainable params: 4,049,571\n",
            "_________________________________________________________________\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "WSAz6_oi62Sn"
      },
      "source": [
        "Alright, it looks like all of the layers in the `efficientnetb0` layer are frozen. We can confirm this using the `trainable_variables` attribute."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "dgSn6yzywHd7",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "573c99b9-26e1-467c-c430-8ff4ca4a7377"
      },
      "source": [
        "# How many layers are trainable in our base model?\n",
        "print(len(model_2.layers[2].trainable_variables)) # layer at index 2 is the EfficientNetB0 layer (the base model)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "0\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "m2cydE75i2OC"
      },
      "source": [
        "This is the same as our base model."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "bEFHfoVti1d4",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "d1e020e7-ff06-4796-b9e1-50c14bae4787"
      },
      "source": [
        "print(len(base_model.trainable_variables))"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "0\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "3n1qhcK4jFwx"
      },
      "source": [
        "We can even check layer by layer to see if the they're trainable."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "WGSvBXM7jKIm",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "3cfd3778-8547-4c04-c0f4-5d3e8ecaab65"
      },
      "source": [
        "# Check which layers are tuneable (trainable)\n",
        "for layer_number, layer in enumerate(base_model.layers):\n",
        "  print(layer_number, layer.name, layer.trainable)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "0 input_3 False\n",
            "1 rescaling_2 False\n",
            "2 normalization_2 False\n",
            "3 stem_conv_pad False\n",
            "4 stem_conv False\n",
            "5 stem_bn False\n",
            "6 stem_activation False\n",
            "7 block1a_dwconv False\n",
            "8 block1a_bn False\n",
            "9 block1a_activation False\n",
            "10 block1a_se_squeeze False\n",
            "11 block1a_se_reshape False\n",
            "12 block1a_se_reduce False\n",
            "13 block1a_se_expand False\n",
            "14 block1a_se_excite False\n",
            "15 block1a_project_conv False\n",
            "16 block1a_project_bn False\n",
            "17 block2a_expand_conv False\n",
            "18 block2a_expand_bn False\n",
            "19 block2a_expand_activation False\n",
            "20 block2a_dwconv_pad False\n",
            "21 block2a_dwconv False\n",
            "22 block2a_bn False\n",
            "23 block2a_activation False\n",
            "24 block2a_se_squeeze False\n",
            "25 block2a_se_reshape False\n",
            "26 block2a_se_reduce False\n",
            "27 block2a_se_expand False\n",
            "28 block2a_se_excite False\n",
            "29 block2a_project_conv False\n",
            "30 block2a_project_bn False\n",
            "31 block2b_expand_conv False\n",
            "32 block2b_expand_bn False\n",
            "33 block2b_expand_activation False\n",
            "34 block2b_dwconv False\n",
            "35 block2b_bn False\n",
            "36 block2b_activation False\n",
            "37 block2b_se_squeeze False\n",
            "38 block2b_se_reshape False\n",
            "39 block2b_se_reduce False\n",
            "40 block2b_se_expand False\n",
            "41 block2b_se_excite False\n",
            "42 block2b_project_conv False\n",
            "43 block2b_project_bn False\n",
            "44 block2b_drop False\n",
            "45 block2b_add False\n",
            "46 block3a_expand_conv False\n",
            "47 block3a_expand_bn False\n",
            "48 block3a_expand_activation False\n",
            "49 block3a_dwconv_pad False\n",
            "50 block3a_dwconv False\n",
            "51 block3a_bn False\n",
            "52 block3a_activation False\n",
            "53 block3a_se_squeeze False\n",
            "54 block3a_se_reshape False\n",
            "55 block3a_se_reduce False\n",
            "56 block3a_se_expand False\n",
            "57 block3a_se_excite False\n",
            "58 block3a_project_conv False\n",
            "59 block3a_project_bn False\n",
            "60 block3b_expand_conv False\n",
            "61 block3b_expand_bn False\n",
            "62 block3b_expand_activation False\n",
            "63 block3b_dwconv False\n",
            "64 block3b_bn False\n",
            "65 block3b_activation False\n",
            "66 block3b_se_squeeze False\n",
            "67 block3b_se_reshape False\n",
            "68 block3b_se_reduce False\n",
            "69 block3b_se_expand False\n",
            "70 block3b_se_excite False\n",
            "71 block3b_project_conv False\n",
            "72 block3b_project_bn False\n",
            "73 block3b_drop False\n",
            "74 block3b_add False\n",
            "75 block4a_expand_conv False\n",
            "76 block4a_expand_bn False\n",
            "77 block4a_expand_activation False\n",
            "78 block4a_dwconv_pad False\n",
            "79 block4a_dwconv False\n",
            "80 block4a_bn False\n",
            "81 block4a_activation False\n",
            "82 block4a_se_squeeze False\n",
            "83 block4a_se_reshape False\n",
            "84 block4a_se_reduce False\n",
            "85 block4a_se_expand False\n",
            "86 block4a_se_excite False\n",
            "87 block4a_project_conv False\n",
            "88 block4a_project_bn False\n",
            "89 block4b_expand_conv False\n",
            "90 block4b_expand_bn False\n",
            "91 block4b_expand_activation False\n",
            "92 block4b_dwconv False\n",
            "93 block4b_bn False\n",
            "94 block4b_activation False\n",
            "95 block4b_se_squeeze False\n",
            "96 block4b_se_reshape False\n",
            "97 block4b_se_reduce False\n",
            "98 block4b_se_expand False\n",
            "99 block4b_se_excite False\n",
            "100 block4b_project_conv False\n",
            "101 block4b_project_bn False\n",
            "102 block4b_drop False\n",
            "103 block4b_add False\n",
            "104 block4c_expand_conv False\n",
            "105 block4c_expand_bn False\n",
            "106 block4c_expand_activation False\n",
            "107 block4c_dwconv False\n",
            "108 block4c_bn False\n",
            "109 block4c_activation False\n",
            "110 block4c_se_squeeze False\n",
            "111 block4c_se_reshape False\n",
            "112 block4c_se_reduce False\n",
            "113 block4c_se_expand False\n",
            "114 block4c_se_excite False\n",
            "115 block4c_project_conv False\n",
            "116 block4c_project_bn False\n",
            "117 block4c_drop False\n",
            "118 block4c_add False\n",
            "119 block5a_expand_conv False\n",
            "120 block5a_expand_bn False\n",
            "121 block5a_expand_activation False\n",
            "122 block5a_dwconv False\n",
            "123 block5a_bn False\n",
            "124 block5a_activation False\n",
            "125 block5a_se_squeeze False\n",
            "126 block5a_se_reshape False\n",
            "127 block5a_se_reduce False\n",
            "128 block5a_se_expand False\n",
            "129 block5a_se_excite False\n",
            "130 block5a_project_conv False\n",
            "131 block5a_project_bn False\n",
            "132 block5b_expand_conv False\n",
            "133 block5b_expand_bn False\n",
            "134 block5b_expand_activation False\n",
            "135 block5b_dwconv False\n",
            "136 block5b_bn False\n",
            "137 block5b_activation False\n",
            "138 block5b_se_squeeze False\n",
            "139 block5b_se_reshape False\n",
            "140 block5b_se_reduce False\n",
            "141 block5b_se_expand False\n",
            "142 block5b_se_excite False\n",
            "143 block5b_project_conv False\n",
            "144 block5b_project_bn False\n",
            "145 block5b_drop False\n",
            "146 block5b_add False\n",
            "147 block5c_expand_conv False\n",
            "148 block5c_expand_bn False\n",
            "149 block5c_expand_activation False\n",
            "150 block5c_dwconv False\n",
            "151 block5c_bn False\n",
            "152 block5c_activation False\n",
            "153 block5c_se_squeeze False\n",
            "154 block5c_se_reshape False\n",
            "155 block5c_se_reduce False\n",
            "156 block5c_se_expand False\n",
            "157 block5c_se_excite False\n",
            "158 block5c_project_conv False\n",
            "159 block5c_project_bn False\n",
            "160 block5c_drop False\n",
            "161 block5c_add False\n",
            "162 block6a_expand_conv False\n",
            "163 block6a_expand_bn False\n",
            "164 block6a_expand_activation False\n",
            "165 block6a_dwconv_pad False\n",
            "166 block6a_dwconv False\n",
            "167 block6a_bn False\n",
            "168 block6a_activation False\n",
            "169 block6a_se_squeeze False\n",
            "170 block6a_se_reshape False\n",
            "171 block6a_se_reduce False\n",
            "172 block6a_se_expand False\n",
            "173 block6a_se_excite False\n",
            "174 block6a_project_conv False\n",
            "175 block6a_project_bn False\n",
            "176 block6b_expand_conv False\n",
            "177 block6b_expand_bn False\n",
            "178 block6b_expand_activation False\n",
            "179 block6b_dwconv False\n",
            "180 block6b_bn False\n",
            "181 block6b_activation False\n",
            "182 block6b_se_squeeze False\n",
            "183 block6b_se_reshape False\n",
            "184 block6b_se_reduce False\n",
            "185 block6b_se_expand False\n",
            "186 block6b_se_excite False\n",
            "187 block6b_project_conv False\n",
            "188 block6b_project_bn False\n",
            "189 block6b_drop False\n",
            "190 block6b_add False\n",
            "191 block6c_expand_conv False\n",
            "192 block6c_expand_bn False\n",
            "193 block6c_expand_activation False\n",
            "194 block6c_dwconv False\n",
            "195 block6c_bn False\n",
            "196 block6c_activation False\n",
            "197 block6c_se_squeeze False\n",
            "198 block6c_se_reshape False\n",
            "199 block6c_se_reduce False\n",
            "200 block6c_se_expand False\n",
            "201 block6c_se_excite False\n",
            "202 block6c_project_conv False\n",
            "203 block6c_project_bn False\n",
            "204 block6c_drop False\n",
            "205 block6c_add False\n",
            "206 block6d_expand_conv False\n",
            "207 block6d_expand_bn False\n",
            "208 block6d_expand_activation False\n",
            "209 block6d_dwconv False\n",
            "210 block6d_bn False\n",
            "211 block6d_activation False\n",
            "212 block6d_se_squeeze False\n",
            "213 block6d_se_reshape False\n",
            "214 block6d_se_reduce False\n",
            "215 block6d_se_expand False\n",
            "216 block6d_se_excite False\n",
            "217 block6d_project_conv False\n",
            "218 block6d_project_bn False\n",
            "219 block6d_drop False\n",
            "220 block6d_add False\n",
            "221 block7a_expand_conv False\n",
            "222 block7a_expand_bn False\n",
            "223 block7a_expand_activation False\n",
            "224 block7a_dwconv False\n",
            "225 block7a_bn False\n",
            "226 block7a_activation False\n",
            "227 block7a_se_squeeze False\n",
            "228 block7a_se_reshape False\n",
            "229 block7a_se_reduce False\n",
            "230 block7a_se_expand False\n",
            "231 block7a_se_excite False\n",
            "232 block7a_project_conv False\n",
            "233 block7a_project_bn False\n",
            "234 top_conv False\n",
            "235 top_bn False\n",
            "236 top_activation False\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "WT7tYrL8iNjt"
      },
      "source": [
        "Beautiful. This is exactly what we're after. \n",
        "\n",
        "Now to fine-tune the base model to our own data, we're going to unfreeze the top 10 layers and continue training our model for another 5 epochs.\n",
        "\n",
        "This means all of the base model's layers except for the last 10 will remain frozen and untrainable. And the weights in the remaining unfrozen layers will be updated during training.\n",
        "\n",
        "Ideally, we should see the model's performance improve.\n",
        "\n",
        "> 🤔 **Question:** How many layers should you unfreeze when training?\n",
        "\n",
        "There's no set rule for this. You could unfreeze every layer in the pretrained model or you could try unfreezing one layer at a time. Best to experiment with different amounts of unfreezing and fine-tuning to see what happens. Generally, the less data you have, the less layers you want to unfreeze and the more gradually you want to fine-tune.\n",
        "\n",
        "> 📖 **Resource:** The [ULMFiT (Universal Language Model Fine-tuning for Text Classification) paper](https://arxiv.org/abs/1801.06146) has a great series of experiments on fine-tuning models.\n",
        "\n",
        "To begin fine-tuning, we'll unfreeze the entire base model by setting its `trainable` attribute to `True`. Then we'll refreeze every layer in the base model except for the last 10 by looping through them and setting their `trainable` attribute to `False`. Finally, we'll recompile the model."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "0RN8aH82i__f"
      },
      "source": [
        "base_model.trainable = True\n",
        "\n",
        "# Freeze all layers except for the\n",
        "for layer in base_model.layers[:-10]:\n",
        "  layer.trainable = False\n",
        "\n",
        "# Recompile the model (always recompile after any adjustments to a model)\n",
        "model_2.compile(loss=\"categorical_crossentropy\",\n",
        "              optimizer=tf.keras.optimizers.Adam(lr=0.0001), # lr is 10x lower than before for fine-tuning\n",
        "              metrics=[\"accuracy\"])"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "rSVFvTiHjYP-"
      },
      "source": [
        "Wonderful, now let's check which layers of the pretrained model are trainable."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "pyKYo9yB7Xjq",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "8e43382c-bdb5-4efa-d1bb-ee32e1cb1308"
      },
      "source": [
        "# Check which layers are tuneable (trainable)\n",
        "for layer_number, layer in enumerate(base_model.layers):\n",
        "  print(layer_number, layer.name, layer.trainable)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "0 input_3 False\n",
            "1 rescaling_2 False\n",
            "2 normalization_2 False\n",
            "3 stem_conv_pad False\n",
            "4 stem_conv False\n",
            "5 stem_bn False\n",
            "6 stem_activation False\n",
            "7 block1a_dwconv False\n",
            "8 block1a_bn False\n",
            "9 block1a_activation False\n",
            "10 block1a_se_squeeze False\n",
            "11 block1a_se_reshape False\n",
            "12 block1a_se_reduce False\n",
            "13 block1a_se_expand False\n",
            "14 block1a_se_excite False\n",
            "15 block1a_project_conv False\n",
            "16 block1a_project_bn False\n",
            "17 block2a_expand_conv False\n",
            "18 block2a_expand_bn False\n",
            "19 block2a_expand_activation False\n",
            "20 block2a_dwconv_pad False\n",
            "21 block2a_dwconv False\n",
            "22 block2a_bn False\n",
            "23 block2a_activation False\n",
            "24 block2a_se_squeeze False\n",
            "25 block2a_se_reshape False\n",
            "26 block2a_se_reduce False\n",
            "27 block2a_se_expand False\n",
            "28 block2a_se_excite False\n",
            "29 block2a_project_conv False\n",
            "30 block2a_project_bn False\n",
            "31 block2b_expand_conv False\n",
            "32 block2b_expand_bn False\n",
            "33 block2b_expand_activation False\n",
            "34 block2b_dwconv False\n",
            "35 block2b_bn False\n",
            "36 block2b_activation False\n",
            "37 block2b_se_squeeze False\n",
            "38 block2b_se_reshape False\n",
            "39 block2b_se_reduce False\n",
            "40 block2b_se_expand False\n",
            "41 block2b_se_excite False\n",
            "42 block2b_project_conv False\n",
            "43 block2b_project_bn False\n",
            "44 block2b_drop False\n",
            "45 block2b_add False\n",
            "46 block3a_expand_conv False\n",
            "47 block3a_expand_bn False\n",
            "48 block3a_expand_activation False\n",
            "49 block3a_dwconv_pad False\n",
            "50 block3a_dwconv False\n",
            "51 block3a_bn False\n",
            "52 block3a_activation False\n",
            "53 block3a_se_squeeze False\n",
            "54 block3a_se_reshape False\n",
            "55 block3a_se_reduce False\n",
            "56 block3a_se_expand False\n",
            "57 block3a_se_excite False\n",
            "58 block3a_project_conv False\n",
            "59 block3a_project_bn False\n",
            "60 block3b_expand_conv False\n",
            "61 block3b_expand_bn False\n",
            "62 block3b_expand_activation False\n",
            "63 block3b_dwconv False\n",
            "64 block3b_bn False\n",
            "65 block3b_activation False\n",
            "66 block3b_se_squeeze False\n",
            "67 block3b_se_reshape False\n",
            "68 block3b_se_reduce False\n",
            "69 block3b_se_expand False\n",
            "70 block3b_se_excite False\n",
            "71 block3b_project_conv False\n",
            "72 block3b_project_bn False\n",
            "73 block3b_drop False\n",
            "74 block3b_add False\n",
            "75 block4a_expand_conv False\n",
            "76 block4a_expand_bn False\n",
            "77 block4a_expand_activation False\n",
            "78 block4a_dwconv_pad False\n",
            "79 block4a_dwconv False\n",
            "80 block4a_bn False\n",
            "81 block4a_activation False\n",
            "82 block4a_se_squeeze False\n",
            "83 block4a_se_reshape False\n",
            "84 block4a_se_reduce False\n",
            "85 block4a_se_expand False\n",
            "86 block4a_se_excite False\n",
            "87 block4a_project_conv False\n",
            "88 block4a_project_bn False\n",
            "89 block4b_expand_conv False\n",
            "90 block4b_expand_bn False\n",
            "91 block4b_expand_activation False\n",
            "92 block4b_dwconv False\n",
            "93 block4b_bn False\n",
            "94 block4b_activation False\n",
            "95 block4b_se_squeeze False\n",
            "96 block4b_se_reshape False\n",
            "97 block4b_se_reduce False\n",
            "98 block4b_se_expand False\n",
            "99 block4b_se_excite False\n",
            "100 block4b_project_conv False\n",
            "101 block4b_project_bn False\n",
            "102 block4b_drop False\n",
            "103 block4b_add False\n",
            "104 block4c_expand_conv False\n",
            "105 block4c_expand_bn False\n",
            "106 block4c_expand_activation False\n",
            "107 block4c_dwconv False\n",
            "108 block4c_bn False\n",
            "109 block4c_activation False\n",
            "110 block4c_se_squeeze False\n",
            "111 block4c_se_reshape False\n",
            "112 block4c_se_reduce False\n",
            "113 block4c_se_expand False\n",
            "114 block4c_se_excite False\n",
            "115 block4c_project_conv False\n",
            "116 block4c_project_bn False\n",
            "117 block4c_drop False\n",
            "118 block4c_add False\n",
            "119 block5a_expand_conv False\n",
            "120 block5a_expand_bn False\n",
            "121 block5a_expand_activation False\n",
            "122 block5a_dwconv False\n",
            "123 block5a_bn False\n",
            "124 block5a_activation False\n",
            "125 block5a_se_squeeze False\n",
            "126 block5a_se_reshape False\n",
            "127 block5a_se_reduce False\n",
            "128 block5a_se_expand False\n",
            "129 block5a_se_excite False\n",
            "130 block5a_project_conv False\n",
            "131 block5a_project_bn False\n",
            "132 block5b_expand_conv False\n",
            "133 block5b_expand_bn False\n",
            "134 block5b_expand_activation False\n",
            "135 block5b_dwconv False\n",
            "136 block5b_bn False\n",
            "137 block5b_activation False\n",
            "138 block5b_se_squeeze False\n",
            "139 block5b_se_reshape False\n",
            "140 block5b_se_reduce False\n",
            "141 block5b_se_expand False\n",
            "142 block5b_se_excite False\n",
            "143 block5b_project_conv False\n",
            "144 block5b_project_bn False\n",
            "145 block5b_drop False\n",
            "146 block5b_add False\n",
            "147 block5c_expand_conv False\n",
            "148 block5c_expand_bn False\n",
            "149 block5c_expand_activation False\n",
            "150 block5c_dwconv False\n",
            "151 block5c_bn False\n",
            "152 block5c_activation False\n",
            "153 block5c_se_squeeze False\n",
            "154 block5c_se_reshape False\n",
            "155 block5c_se_reduce False\n",
            "156 block5c_se_expand False\n",
            "157 block5c_se_excite False\n",
            "158 block5c_project_conv False\n",
            "159 block5c_project_bn False\n",
            "160 block5c_drop False\n",
            "161 block5c_add False\n",
            "162 block6a_expand_conv False\n",
            "163 block6a_expand_bn False\n",
            "164 block6a_expand_activation False\n",
            "165 block6a_dwconv_pad False\n",
            "166 block6a_dwconv False\n",
            "167 block6a_bn False\n",
            "168 block6a_activation False\n",
            "169 block6a_se_squeeze False\n",
            "170 block6a_se_reshape False\n",
            "171 block6a_se_reduce False\n",
            "172 block6a_se_expand False\n",
            "173 block6a_se_excite False\n",
            "174 block6a_project_conv False\n",
            "175 block6a_project_bn False\n",
            "176 block6b_expand_conv False\n",
            "177 block6b_expand_bn False\n",
            "178 block6b_expand_activation False\n",
            "179 block6b_dwconv False\n",
            "180 block6b_bn False\n",
            "181 block6b_activation False\n",
            "182 block6b_se_squeeze False\n",
            "183 block6b_se_reshape False\n",
            "184 block6b_se_reduce False\n",
            "185 block6b_se_expand False\n",
            "186 block6b_se_excite False\n",
            "187 block6b_project_conv False\n",
            "188 block6b_project_bn False\n",
            "189 block6b_drop False\n",
            "190 block6b_add False\n",
            "191 block6c_expand_conv False\n",
            "192 block6c_expand_bn False\n",
            "193 block6c_expand_activation False\n",
            "194 block6c_dwconv False\n",
            "195 block6c_bn False\n",
            "196 block6c_activation False\n",
            "197 block6c_se_squeeze False\n",
            "198 block6c_se_reshape False\n",
            "199 block6c_se_reduce False\n",
            "200 block6c_se_expand False\n",
            "201 block6c_se_excite False\n",
            "202 block6c_project_conv False\n",
            "203 block6c_project_bn False\n",
            "204 block6c_drop False\n",
            "205 block6c_add False\n",
            "206 block6d_expand_conv False\n",
            "207 block6d_expand_bn False\n",
            "208 block6d_expand_activation False\n",
            "209 block6d_dwconv False\n",
            "210 block6d_bn False\n",
            "211 block6d_activation False\n",
            "212 block6d_se_squeeze False\n",
            "213 block6d_se_reshape False\n",
            "214 block6d_se_reduce False\n",
            "215 block6d_se_expand False\n",
            "216 block6d_se_excite False\n",
            "217 block6d_project_conv False\n",
            "218 block6d_project_bn False\n",
            "219 block6d_drop False\n",
            "220 block6d_add False\n",
            "221 block7a_expand_conv False\n",
            "222 block7a_expand_bn False\n",
            "223 block7a_expand_activation False\n",
            "224 block7a_dwconv False\n",
            "225 block7a_bn False\n",
            "226 block7a_activation False\n",
            "227 block7a_se_squeeze True\n",
            "228 block7a_se_reshape True\n",
            "229 block7a_se_reduce True\n",
            "230 block7a_se_expand True\n",
            "231 block7a_se_excite True\n",
            "232 block7a_project_conv True\n",
            "233 block7a_project_bn True\n",
            "234 top_conv True\n",
            "235 top_bn True\n",
            "236 top_activation True\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "yHvSykH7jfRK"
      },
      "source": [
        "Nice! It seems all layers except for the last 10 are frozen and untrainable. This means only the last 10 layers of the base model along with the output layer will have their weights updated during training.\n",
        "\n",
        "> 🤔 **Question:** Why did we recompile the model?\n",
        "\n",
        "Every time you make a change to your models, you need to recompile them.\n",
        "\n",
        "In our case, we're using the exact same loss, optimizer and metrics as before, except this time the learning rate for our optimizer will be 10x smaller than before (0.0001 instead of Adam's default of 0.001).\n",
        "\n",
        "We do this so the model doesn't try to overwrite the existing weights in the pretrained model too fast. In other words, we want learning to be more gradual.\n",
        "\n",
        "> 🔑 **Note:** There's no set standard for setting the learning rate during fine-tuning, though reductions of [2.6x-10x+ seem to work well in practice](https://arxiv.org/abs/1801.06146).\n",
        "\n",
        "How many trainable variables do we have now?"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "tbgcdnJIjicF",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "8b93480d-4fe7-4655-ff64-0175d1090ad7"
      },
      "source": [
        "print(len(model_2.trainable_variables))"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "12\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "J5wKmzBeuty7"
      },
      "source": [
        "Wonderful, it looks like our model has a total of 10 trainable variables, the last 10 layers of the base model and the weight and bias parameters of the Dense output layer.\n",
        "\n",
        "Time to fine-tune!\n",
        "\n",
        "We're going to continue training on from where our previous model finished. Since it trained for 5 epochs, our fine-tuning will begin on the epoch 5 and continue for another 5 epochs.\n",
        "\n",
        "To do this, we can use the `initial_epoch` parameter of the [`fit()`](https://keras.rstudio.com/reference/fit.html) method. We'll pass it the last epoch of the previous model's training history (`history_10_percent_data_aug.epoch[-1]`)."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "uH6XM4ENjfRn",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "e873e2bb-77b2-43b8-95cb-e1c658484c62"
      },
      "source": [
        "# Fine tune for another 5 epochs\n",
        "fine_tune_epochs = initial_epochs + 5\n",
        "\n",
        "# Refit the model (same as model_2 except with more trainable layers)\n",
        "history_fine_10_percent_data_aug = model_2.fit(train_data_10_percent,\n",
        "                                               epochs=fine_tune_epochs,\n",
        "                                               validation_data=test_data,\n",
        "                                               initial_epoch=history_10_percent_data_aug.epoch[-1], # start from previous last epoch\n",
        "                                               validation_steps=int(0.25 * len(test_data)),\n",
        "                                               callbacks=[create_tensorboard_callback(\"transfer_learning\", \"10_percent_fine_tune_last_10\")]) # name experiment appropriately"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Saving TensorBoard log files to: transfer_learning/10_percent_fine_tune_last_10/20210216-022051\n",
            "Epoch 5/10\n",
            "24/24 [==============================] - 15s 439ms/step - loss: 0.6963 - accuracy: 0.8062 - val_loss: 0.6032 - val_accuracy: 0.8043\n",
            "Epoch 6/10\n",
            "24/24 [==============================] - 8s 329ms/step - loss: 0.5747 - accuracy: 0.8390 - val_loss: 0.5580 - val_accuracy: 0.8125\n",
            "Epoch 7/10\n",
            "24/24 [==============================] - 8s 319ms/step - loss: 0.4972 - accuracy: 0.8458 - val_loss: 0.5543 - val_accuracy: 0.8240\n",
            "Epoch 8/10\n",
            "24/24 [==============================] - 8s 323ms/step - loss: 0.4262 - accuracy: 0.8814 - val_loss: 0.5403 - val_accuracy: 0.8191\n",
            "Epoch 9/10\n",
            "24/24 [==============================] - 8s 300ms/step - loss: 0.4234 - accuracy: 0.8855 - val_loss: 0.5262 - val_accuracy: 0.8322\n",
            "Epoch 10/10\n",
            "24/24 [==============================] - 8s 305ms/step - loss: 0.3665 - accuracy: 0.9056 - val_loss: 0.5218 - val_accuracy: 0.8322\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "9lrTVkS5wJT7"
      },
      "source": [
        "> 🔑 **Note:** Fine-tuning usually takes far longer per epoch than feature extraction (due to updating more weights throughout a network).\n",
        "\n",
        "Ho ho, looks like our model has gained a few percentage points of accuracy! Let's evalaute it."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "zbFET5Pj8U3F",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "021196e6-cac6-4b8d-92da-83f97d967f95"
      },
      "source": [
        "# Evaluate the model on the test data\n",
        "results_fine_tune_10_percent = model_2.evaluate(test_data)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "79/79 [==============================] - 10s 117ms/step - loss: 0.4870 - accuracy: 0.8388\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "lDnoGFCbwRe4"
      },
      "source": [
        "Remember, the results from evaluating the model might be slightly different to the outputs from training since during training we only evaluate on 25% of the test data.\n",
        "\n",
        "Alright, we need a way to evaluate our model's performance before and after fine-tuning. How about we write a function to compare the before and after?"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "8du2ihQNkm4W"
      },
      "source": [
        "def compare_historys(original_history, new_history, initial_epochs=5):\n",
        "    \"\"\"\n",
        "    Compares two model history objects.\n",
        "    \"\"\"\n",
        "    # Get original history measurements\n",
        "    acc = original_history.history[\"accuracy\"]\n",
        "    loss = original_history.history[\"loss\"]\n",
        "\n",
        "    print(len(acc))\n",
        "\n",
        "    val_acc = original_history.history[\"val_accuracy\"]\n",
        "    val_loss = original_history.history[\"val_loss\"]\n",
        "\n",
        "    # Combine original history with new history\n",
        "    total_acc = acc + new_history.history[\"accuracy\"]\n",
        "    total_loss = loss + new_history.history[\"loss\"]\n",
        "\n",
        "    total_val_acc = val_acc + new_history.history[\"val_accuracy\"]\n",
        "    total_val_loss = val_loss + new_history.history[\"val_loss\"]\n",
        "\n",
        "    print(len(total_acc))\n",
        "    print(total_acc)\n",
        "\n",
        "    # Make plots\n",
        "    plt.figure(figsize=(8, 8))\n",
        "    plt.subplot(2, 1, 1)\n",
        "    plt.plot(total_acc, label='Training Accuracy')\n",
        "    plt.plot(total_val_acc, label='Validation Accuracy')\n",
        "    plt.plot([initial_epochs-1, initial_epochs-1],\n",
        "              plt.ylim(), label='Start Fine Tuning') # reshift plot around epochs\n",
        "    plt.legend(loc='lower right')\n",
        "    plt.title('Training and Validation Accuracy')\n",
        "\n",
        "    plt.subplot(2, 1, 2)\n",
        "    plt.plot(total_loss, label='Training Loss')\n",
        "    plt.plot(total_val_loss, label='Validation Loss')\n",
        "    plt.plot([initial_epochs-1, initial_epochs-1],\n",
        "              plt.ylim(), label='Start Fine Tuning') # reshift plot around epochs\n",
        "    plt.legend(loc='upper right')\n",
        "    plt.title('Training and Validation Loss')\n",
        "    plt.xlabel('epoch')\n",
        "    plt.show()"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "L-SsaN7GxNOJ"
      },
      "source": [
        "This is where saving the history variables of our model training comes in handy. Let's see what happened after fine-tuning the last 10 layers of our model."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "BJANCd2e5Olt",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 585
        },
        "outputId": "aadf20cf-a4bf-4d02-c865-5d138ce1c006"
      },
      "source": [
        "compare_historys(original_history=history_10_percent_data_aug, \n",
        "                 new_history=history_fine_10_percent_data_aug, \n",
        "                 initial_epochs=5)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "5\n",
            "11\n",
            "[0.3293333351612091, 0.6453333497047424, 0.7333333492279053, 0.7693333625793457, 0.7946666479110718, 0.8026666641235352, 0.8320000171661377, 0.846666693687439, 0.8613333106040955, 0.8893333077430725, 0.8893333077430725]\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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/fffT1RUFD//+c9r51dWVhISUn8EpKenk56efsJ1rFy5snWKBaqrq3n99dcZMGAA//jHP5g5c2arLdtXY587UFmPuo6vdx1m7a48rpuWTHCQ7bYyxnQe8+fP58c//jFTpkzh9ttv56uvvmLq1KlMmDCBadOmsXXrVgA++eQTzj//fMAJ+QULFjBjxgyGDBnC448/Xru8qKio2vYzZszgkksuYdSoUVx55ZWoKgDLly9n1KhRTJo0iZtvvrl2uXV98sknjB07lhtvvJGXXnqpdvr+/fu58MILSU1NJTU1tfbLwQsvvMD48eNJTU3l6quvrv18r7zySr31nXrqqcyePZsxY8YAcMEFFzBp0iTGjh3LU089Vfued999l4kTJ5KamsqZZ55JdXU1w4cP5+DBg4DzhWLYsGG1r9tDx/pa0Q6eXZFBdEQIl6YP8LoUY0wn8Z9vbmTTnoJWXeaYxBju+8HYZr8vKyuLlStXEhwcTEFBAZ999hkhISF88MEH3HXXXbz66qvHvWfLli18/PHHFBYWMnLkSG688cbjLi/6+uuv2bhxI4mJiUyfPp3PP/+c9PR0fvSjH/Hpp58yePBg5s2b12BdL730EvPmzWPOnDncddddVFRUEBoays0338zpp5/O66+/TlVVFUVFRWzcuJFf/epXrFy5koSEBA4dOnTCz7127Vo2bNhQe7b1okWLiIuLo6SkhJNOOomLL76Y6upqFi5cWFvvoUOHCAoK4qqrrmLJkiXccsstfPDBB6SmptKrV69mbvmWsx61j+y8Et7ZsI95kwfSPdy+wxhjOp9LL72U4GDnBk75+flceumljBs3jltvvZWNGzfW+57vf//7hIeHk5CQQO/evdm/f/9xbSZPnkxSUhJBQUGkpaWRmZnJli1bGDJkSG04NhTU5eXlLF++nAsuuICYmBimTJnCe++9B8BHH33EjTfeCEBwcDCxsbF89NFHXHrppSQkOOMvxMXFnfBzT548+ZhLoh5//HFSU1M5+eST2b17N9999x1ffvklp512Wm27muUuWLCAF154AXAC/rrrrjvh+lqTpZGPF77IRFW5xm5wYoxpRS3p+baV7t271z6/5557mDlzJq+//jqZmZnMmDGj3veEh4fXPg8ODqaysrJFbRry3nvvkZeXR0pKCgDFxcV069atwd3kDQkJCak9Ea26uvqYk+Z8P/cnn3zCBx98wBdffEFkZCQzZsxo9JKpAQMG0KdPHz766CO++uorlixZ0qy6/GU9ateRskpe+ucuzh3Xj6SekV6XY4wxbS4/P5/+/Z1xDBYvXtzqyx85ciQ7duwgMzMTgL/85S/1tnvppZd45plnyMzMJDMzk4yMDP7+979TXFzMmWeeyZNPPglAVVUV+fn5nHHGGfz1r38lNzcXoHbXd3JyMmvWrAFg2bJlVFRU1Lu+/Px8evbsSWRkJFu2bOHLL78E4OSTT+bTTz8lIyPjmOUC/PCHP+Sqq646Zo9Ee/ErqEVklohsFZFtInJHI+0uFhEVkROfRuiRV9dmUVBaaWNOG2O6jNtvv50777yTCRMmNKsH3FTdunXjj3/8I7NmzWLSpElER0cTG3vsvSmKi4t59913+f73v187rXv37pxyyim8+eab/P73v+fjjz8mJSWFSZMmsWnTJsaOHcsvf/lLTj/9dFJTU/nZz34GwMKFC/nHP/5BamoqX3zxxTG9aF+zZs2isrKS0aNHc8cdd3DyyScD0KtXL5566ikuuugiUlNTufzyy2vfM3v2bIqKitp9tzeA1JyZ1+w3igQD/wLOBrKAVcA8Vd1Up1008DYQBtykqqtPtOz09HRdvfqEzVpNdbVy5u/+QUy3UN74t2l2kwLT6q571/nP/dys5zyuxLSXzZs3M3r0aK/L8FxRURFRUVGoKj/5yU8YPnw4t956q9dlNdvq1au59dZb+eyzz/xeVn3/NkRkjarW25n1p0c9GdimqjtUtRxYCsypp92DwK+BgL0z/cdbD5CRc4TrTxlsIW2MMa3o6aefJi0tjbFjx5Kfn8+PfvQjr0tqtkceeYSLL76Yhx9+2JP1+xPU/YHdPq+z3Gm1RGQiMEBV3/ZjPW3u2RUZ9IuN4Nxxfb0uxRhjOpVbb72VdevWsWnTJpYsWUJkZMc7B+iOO+5g586dnHLKKZ6sv81OJhORIOB3wH80sf0NIrJaRFa354Xkm/cWsHJ7LtdMTSY02M6tM8YYE1j8SaZswPeuIEnutBrRwDjgExHJBE4GljV0QpmqPqWq6aqa3p4Xki9akUG30GCumDyw3dZpjDHGNJU/Qb0KGC4ig0UkDJgLLKuZqar5qpqgqsmqmgx8Ccxuyslk7eVgYRl/W7eHSyYlERvZ9EG8jTHGmPbS4qBW1UrgJuA9YDPwsqpuFJEHRGR2axXYll78ciflVdVcNz3Z61KMMcaYevl1UFZVl6vqCFUdqqoPudPuVdVl9bSdEUi96dKKKpb8cydnjOrNkF5RXpdjjDGtaubMmbW34azx2GOP1d6Osz4zZsyg5tLY8847j7y8vOPa3H///Tz66KONrvuNN95g06ajV+ree++9fPDBB80pv1FdbTjMLnv21LJv9pBTVM71doMTY0wnNG/ePJYuXXrMtKVLlzY6MIav5cuX06NHjxatu25QP/DAA5x11lktWlZddYfDbCttcQOYluqSQa2qLFqRwai+0UwbGu91OcYY0+ouueQS3n777dr7XWdmZrJnzx5OPfVUbrzxRtLT0xk7diz33Xdfve9PTk4mJycHgIceeogRI0Zwyimn1A6FCc410ieddBKpqalcfPHFFBcXs3LlSpYtW8Ztt91GWloa27dvP2b4yQ8//JAJEyaQkpLCggULKCsrq13ffffdx8SJE0lJSWHLli311tUVh8PskoNyfLE9ly37CvnNxePtBifGmLb3zh2wb33rLrNvCpz7SIOz4+LimDx5Mu+88w5z5sxh6dKlXHbZZYgIDz30EHFxcVRVVXHmmWfy7bffMn78+HqXs2bNGpYuXcq6deuorKxk4sSJTJo0CYCLLrqIhQsXAnD33Xfz7LPP8tOf/pTZs2dz/vnnc8kllxyzrNLSUubPn8+HH37IiBEjuOaaa3jyySe55ZZbAEhISGDt2rX88Y9/5NFHH+WZZ545rp6uOBxml+xRP7sig4SoMGanJXpdijHGtBnf3d++u71ffvllJk6cyIQJE9i4ceMxu6nr+uyzz7jwwguJjIwkJiaG2bOPniu8YcMGTj31VFJSUliyZEmDw2TW2Lp1K4MHD2bEiBEAXHvttXz66ae18y+66CIAJk2aVDuQh6+uOhxml+tR7zhYxIdbDvDvZw4nIrR9R0AxxnRRjfR829KcOXO49dZbWbt2LcXFxUyaNImMjAweffRRVq1aRc+ePZk/f36jQzw2Zv78+bzxxhukpqayePFiPvnkE7/qrRkqs6FhMrvqcJhdrke9eGUmYcFBXHWyjTltjOncoqKimDlzJgsWLKjtTRcUFNC9e3diY2PZv38/77zzTqPLOO2003jjjTcoKSmhsLCQN998s3ZeYWEh/fr1o6Ki4phQio6OprCw8LhljRw5kszM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\n",
            "text/plain": [
              "<Figure size 576x576 with 2 Axes>"
            ]
          },
          "metadata": {
            "tags": [],
            "needs_background": "light"
          }
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "G3FiQuJoxbOq"
      },
      "source": [
        "Alright, alright, seems like the curves are heading in the right direction after fine-tuning. But remember, it should be noted that fine-tuning usually works best with larger amounts of data."
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "zJMW2KKiqFsa"
      },
      "source": [
        "## Model 4: Fine-tuning an existing model all of the data\n",
        "\n",
        "Enough talk about how fine-tuning a model usually works with more data, let's try it out.\n",
        "\n",
        "We'll start by downloading the full version of our 10 food classes dataset.\n",
        "\n"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "WJp-39zmLgFO",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "41741808-c29a-4352-ef23-05827891bcd5"
      },
      "source": [
        "# Download and unzip 10 classes of data with all images\n",
        "!wget https://storage.googleapis.com/ztm_tf_course/food_vision/10_food_classes_all_data.zip \n",
        "unzip_data(\"10_food_classes_all_data.zip\")\n",
        "\n",
        "# Setup data directories\n",
        "train_dir = \"10_food_classes_all_data/train/\"\n",
        "test_dir = \"10_food_classes_all_data/test/\""
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "--2021-02-16 02:48:30--  https://storage.googleapis.com/ztm_tf_course/food_vision/10_food_classes_all_data.zip\n",
            "Resolving storage.googleapis.com (storage.googleapis.com)... 172.217.164.144, 172.253.115.128, 172.253.63.128, ...\n",
            "Connecting to storage.googleapis.com (storage.googleapis.com)|172.217.164.144|:443... connected.\n",
            "HTTP request sent, awaiting response... 200 OK\n",
            "Length: 519183241 (495M) [application/zip]\n",
            "Saving to: ‘10_food_classes_all_data.zip’\n",
            "\n",
            "10_food_classes_all 100%[===================>] 495.13M   124MB/s    in 4.1s    \n",
            "\n",
            "2021-02-16 02:48:35 (121 MB/s) - ‘10_food_classes_all_data.zip’ saved [519183241/519183241]\n",
            "\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "XUhaT5repEp0",
        "outputId": "53695c66-5d13-4ee4-9e25-10066ac5f1b3"
      },
      "source": [
        "# How many images are we working with now?\n",
        "walk_through_dir(\"10_food_classes_all_data\")"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "There are 2 directories and 0 images in '10_food_classes_all_data'.\n",
            "There are 10 directories and 0 images in '10_food_classes_all_data/train'.\n",
            "There are 0 directories and 750 images in '10_food_classes_all_data/train/ice_cream'.\n",
            "There are 0 directories and 750 images in '10_food_classes_all_data/train/ramen'.\n",
            "There are 0 directories and 750 images in '10_food_classes_all_data/train/chicken_wings'.\n",
            "There are 0 directories and 750 images in '10_food_classes_all_data/train/pizza'.\n",
            "There are 0 directories and 750 images in '10_food_classes_all_data/train/steak'.\n",
            "There are 0 directories and 750 images in '10_food_classes_all_data/train/fried_rice'.\n",
            "There are 0 directories and 750 images in '10_food_classes_all_data/train/hamburger'.\n",
            "There are 0 directories and 750 images in '10_food_classes_all_data/train/grilled_salmon'.\n",
            "There are 0 directories and 750 images in '10_food_classes_all_data/train/sushi'.\n",
            "There are 0 directories and 750 images in '10_food_classes_all_data/train/chicken_curry'.\n",
            "There are 10 directories and 0 images in '10_food_classes_all_data/test'.\n",
            "There are 0 directories and 250 images in '10_food_classes_all_data/test/ice_cream'.\n",
            "There are 0 directories and 250 images in '10_food_classes_all_data/test/ramen'.\n",
            "There are 0 directories and 250 images in '10_food_classes_all_data/test/chicken_wings'.\n",
            "There are 0 directories and 250 images in '10_food_classes_all_data/test/pizza'.\n",
            "There are 0 directories and 250 images in '10_food_classes_all_data/test/steak'.\n",
            "There are 0 directories and 250 images in '10_food_classes_all_data/test/fried_rice'.\n",
            "There are 0 directories and 250 images in '10_food_classes_all_data/test/hamburger'.\n",
            "There are 0 directories and 250 images in '10_food_classes_all_data/test/grilled_salmon'.\n",
            "There are 0 directories and 250 images in '10_food_classes_all_data/test/sushi'.\n",
            "There are 0 directories and 250 images in '10_food_classes_all_data/test/chicken_curry'.\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "4uwDRLJ9z_bZ"
      },
      "source": [
        "And now we'll turn the images into tensors datasets."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "s-bF8cAKLzVt",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "8603a5da-c161-42b1-8134-bd1772510120"
      },
      "source": [
        "# Setup data inputs\n",
        "import tensorflow as tf\n",
        "IMG_SIZE = (224, 224)\n",
        "train_data_10_classes_full = tf.keras.preprocessing.image_dataset_from_directory(train_dir,\n",
        "                                                                                 label_mode=\"categorical\",\n",
        "                                                                                 image_size=IMG_SIZE)\n",
        "\n",
        "# Note: this is the same test dataset we've been using for the previous modelling experiments\n",
        "test_data = tf.keras.preprocessing.image_dataset_from_directory(test_dir,\n",
        "                                                                label_mode=\"categorical\",\n",
        "                                                                image_size=IMG_SIZE)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Found 7500 files belonging to 10 classes.\n",
            "Found 2500 files belonging to 10 classes.\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "LdavTttb_H9u"
      },
      "source": [
        "Oh this is looking good. We've got 10x more images in of the training classes to work with.\n",
        "\n",
        "The **test dataset is the same** we've been using for our previous experiments.\n",
        "\n",
        "As it is now, our `model_2` has been fine-tuned on 10 percent of the data, so to begin fine-tuning on all of the data and keep our experiments consistent, we need to revert it back to the weights we checkpointed after 5 epochs of feature-extraction.\n",
        "\n",
        "To demonstrate this, we'll first evaluate the current `model_2`."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "pjrkv4n-428G",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "e5794a93-fcc2-4813-fa9c-203358a9b68c"
      },
      "source": [
        "# Evaluate model (this is the fine-tuned 10 percent of data version)\n",
        "model_2.evaluate(test_data)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "79/79 [==============================] - 10s 118ms/step - loss: 0.4870 - accuracy: 0.8388\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "[0.4869591295719147, 0.8388000130653381]"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 62
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "tz-AAATk1pUP"
      },
      "source": [
        "These are the same values as `results_fine_tune_10_percent`."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "1D0wLFb01kaJ",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "ab7ec355-5961-4124-e2f3-623f161f4bc9"
      },
      "source": [
        "results_fine_tune_10_percent"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "[0.48695918917655945, 0.8388000130653381]"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 63
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "Ow6pvNQr1z0u"
      },
      "source": [
        "Now we'll revert the model back to the saved weights."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "zqVZlZzVHFys",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "c627895d-f210-4dc2-a67b-29f54bec5e14"
      },
      "source": [
        "# Load model from checkpoint, that way we can fine-tune from the same stage the 10 percent data model was fine-tuned from\n",
        "model_2.load_weights(checkpoint_path) # revert model back to saved weights"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "<tensorflow.python.training.tracking.util.CheckpointLoadStatus at 0x7fcd9da1e4a8>"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 64
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "95DM8uzT138v"
      },
      "source": [
        "And the results should be the same as `results_10_percent_data_aug`."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "wET1oWQC0yc2",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "fedf7481-bf03-4799-902d-8cba5c066ba1"
      },
      "source": [
        "# After loading the weights, this should have gone down (no fine-tuning)\n",
        "model_2.evaluate(test_data)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "79/79 [==============================] - 10s 117ms/step - loss: 0.7047 - accuracy: 0.8080\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "[0.7046542763710022, 0.8080000281333923]"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 65
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "246x0CejyN8b",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "1f7fc091-3d50-489c-b7bd-ca12ed6d650e"
      },
      "source": [
        "# Check to see if the above two results are the same (they should be)\n",
        "results_10_percent_data_aug"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "[0.7046541571617126, 0.8080000281333923]"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 66
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "4dGc9MML2Fn0"
      },
      "source": [
        "Alright, the previous steps might seem quite confusing but all we've done is:\n",
        "1. Trained a feature extraction transfer learning model for 5 epochs on 10% of the data (with all base model layers frozen) and saved the model's weights using `ModelCheckpoint`.\n",
        "2. Fine-tuned the same model on the same 10% of the data for a further 5 epochs with the top 10 layers of the base model unfrozen.\n",
        "3. Saved the results and training logs each time.\n",
        "4. Reloaded the model from 1 to do the same steps as 2 but with all of the data.\n",
        "\n",
        "The same steps as 2?\n",
        "\n",
        "Yeah, we're going to fine-tune the last 10 layers of the base model with the full dataset for another 5 epochs but first let's remind ourselves which layers are trainable."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "k5MWo0Mu6WYl",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "e573b4a0-b6ba-441f-a3c9-c5c5a01b59cb"
      },
      "source": [
        "# Check which layers are tuneable in the whole model\n",
        "for layer_number, layer in enumerate(model_2.layers):\n",
        "  print(layer_number, layer.name, layer.trainable)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "0 input_layer True\n",
            "1 data_augmentation True\n",
            "2 efficientnetb0 True\n",
            "3 global_average_pooling_layer True\n",
            "4 output_layer True\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "zGFZC_fz3M2i"
      },
      "source": [
        "Can we get a little more specific?"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "ojbNIiUV8oc2",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "cad2ac02-6c59-4430-cae8-f0c5d4528d64"
      },
      "source": [
        "# Check which layers are tuneable in the base model\n",
        "for layer_number, layer in enumerate(base_model.layers):\n",
        "  print(layer_number, layer.name, layer.trainable)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "0 input_3 False\n",
            "1 rescaling_2 False\n",
            "2 normalization_2 False\n",
            "3 stem_conv_pad False\n",
            "4 stem_conv False\n",
            "5 stem_bn False\n",
            "6 stem_activation False\n",
            "7 block1a_dwconv False\n",
            "8 block1a_bn False\n",
            "9 block1a_activation False\n",
            "10 block1a_se_squeeze False\n",
            "11 block1a_se_reshape False\n",
            "12 block1a_se_reduce False\n",
            "13 block1a_se_expand False\n",
            "14 block1a_se_excite False\n",
            "15 block1a_project_conv False\n",
            "16 block1a_project_bn False\n",
            "17 block2a_expand_conv False\n",
            "18 block2a_expand_bn False\n",
            "19 block2a_expand_activation False\n",
            "20 block2a_dwconv_pad False\n",
            "21 block2a_dwconv False\n",
            "22 block2a_bn False\n",
            "23 block2a_activation False\n",
            "24 block2a_se_squeeze False\n",
            "25 block2a_se_reshape False\n",
            "26 block2a_se_reduce False\n",
            "27 block2a_se_expand False\n",
            "28 block2a_se_excite False\n",
            "29 block2a_project_conv False\n",
            "30 block2a_project_bn False\n",
            "31 block2b_expand_conv False\n",
            "32 block2b_expand_bn False\n",
            "33 block2b_expand_activation False\n",
            "34 block2b_dwconv False\n",
            "35 block2b_bn False\n",
            "36 block2b_activation False\n",
            "37 block2b_se_squeeze False\n",
            "38 block2b_se_reshape False\n",
            "39 block2b_se_reduce False\n",
            "40 block2b_se_expand False\n",
            "41 block2b_se_excite False\n",
            "42 block2b_project_conv False\n",
            "43 block2b_project_bn False\n",
            "44 block2b_drop False\n",
            "45 block2b_add False\n",
            "46 block3a_expand_conv False\n",
            "47 block3a_expand_bn False\n",
            "48 block3a_expand_activation False\n",
            "49 block3a_dwconv_pad False\n",
            "50 block3a_dwconv False\n",
            "51 block3a_bn False\n",
            "52 block3a_activation False\n",
            "53 block3a_se_squeeze False\n",
            "54 block3a_se_reshape False\n",
            "55 block3a_se_reduce False\n",
            "56 block3a_se_expand False\n",
            "57 block3a_se_excite False\n",
            "58 block3a_project_conv False\n",
            "59 block3a_project_bn False\n",
            "60 block3b_expand_conv False\n",
            "61 block3b_expand_bn False\n",
            "62 block3b_expand_activation False\n",
            "63 block3b_dwconv False\n",
            "64 block3b_bn False\n",
            "65 block3b_activation False\n",
            "66 block3b_se_squeeze False\n",
            "67 block3b_se_reshape False\n",
            "68 block3b_se_reduce False\n",
            "69 block3b_se_expand False\n",
            "70 block3b_se_excite False\n",
            "71 block3b_project_conv False\n",
            "72 block3b_project_bn False\n",
            "73 block3b_drop False\n",
            "74 block3b_add False\n",
            "75 block4a_expand_conv False\n",
            "76 block4a_expand_bn False\n",
            "77 block4a_expand_activation False\n",
            "78 block4a_dwconv_pad False\n",
            "79 block4a_dwconv False\n",
            "80 block4a_bn False\n",
            "81 block4a_activation False\n",
            "82 block4a_se_squeeze False\n",
            "83 block4a_se_reshape False\n",
            "84 block4a_se_reduce False\n",
            "85 block4a_se_expand False\n",
            "86 block4a_se_excite False\n",
            "87 block4a_project_conv False\n",
            "88 block4a_project_bn False\n",
            "89 block4b_expand_conv False\n",
            "90 block4b_expand_bn False\n",
            "91 block4b_expand_activation False\n",
            "92 block4b_dwconv False\n",
            "93 block4b_bn False\n",
            "94 block4b_activation False\n",
            "95 block4b_se_squeeze False\n",
            "96 block4b_se_reshape False\n",
            "97 block4b_se_reduce False\n",
            "98 block4b_se_expand False\n",
            "99 block4b_se_excite False\n",
            "100 block4b_project_conv False\n",
            "101 block4b_project_bn False\n",
            "102 block4b_drop False\n",
            "103 block4b_add False\n",
            "104 block4c_expand_conv False\n",
            "105 block4c_expand_bn False\n",
            "106 block4c_expand_activation False\n",
            "107 block4c_dwconv False\n",
            "108 block4c_bn False\n",
            "109 block4c_activation False\n",
            "110 block4c_se_squeeze False\n",
            "111 block4c_se_reshape False\n",
            "112 block4c_se_reduce False\n",
            "113 block4c_se_expand False\n",
            "114 block4c_se_excite False\n",
            "115 block4c_project_conv False\n",
            "116 block4c_project_bn False\n",
            "117 block4c_drop False\n",
            "118 block4c_add False\n",
            "119 block5a_expand_conv False\n",
            "120 block5a_expand_bn False\n",
            "121 block5a_expand_activation False\n",
            "122 block5a_dwconv False\n",
            "123 block5a_bn False\n",
            "124 block5a_activation False\n",
            "125 block5a_se_squeeze False\n",
            "126 block5a_se_reshape False\n",
            "127 block5a_se_reduce False\n",
            "128 block5a_se_expand False\n",
            "129 block5a_se_excite False\n",
            "130 block5a_project_conv False\n",
            "131 block5a_project_bn False\n",
            "132 block5b_expand_conv False\n",
            "133 block5b_expand_bn False\n",
            "134 block5b_expand_activation False\n",
            "135 block5b_dwconv False\n",
            "136 block5b_bn False\n",
            "137 block5b_activation False\n",
            "138 block5b_se_squeeze False\n",
            "139 block5b_se_reshape False\n",
            "140 block5b_se_reduce False\n",
            "141 block5b_se_expand False\n",
            "142 block5b_se_excite False\n",
            "143 block5b_project_conv False\n",
            "144 block5b_project_bn False\n",
            "145 block5b_drop False\n",
            "146 block5b_add False\n",
            "147 block5c_expand_conv False\n",
            "148 block5c_expand_bn False\n",
            "149 block5c_expand_activation False\n",
            "150 block5c_dwconv False\n",
            "151 block5c_bn False\n",
            "152 block5c_activation False\n",
            "153 block5c_se_squeeze False\n",
            "154 block5c_se_reshape False\n",
            "155 block5c_se_reduce False\n",
            "156 block5c_se_expand False\n",
            "157 block5c_se_excite False\n",
            "158 block5c_project_conv False\n",
            "159 block5c_project_bn False\n",
            "160 block5c_drop False\n",
            "161 block5c_add False\n",
            "162 block6a_expand_conv False\n",
            "163 block6a_expand_bn False\n",
            "164 block6a_expand_activation False\n",
            "165 block6a_dwconv_pad False\n",
            "166 block6a_dwconv False\n",
            "167 block6a_bn False\n",
            "168 block6a_activation False\n",
            "169 block6a_se_squeeze False\n",
            "170 block6a_se_reshape False\n",
            "171 block6a_se_reduce False\n",
            "172 block6a_se_expand False\n",
            "173 block6a_se_excite False\n",
            "174 block6a_project_conv False\n",
            "175 block6a_project_bn False\n",
            "176 block6b_expand_conv False\n",
            "177 block6b_expand_bn False\n",
            "178 block6b_expand_activation False\n",
            "179 block6b_dwconv False\n",
            "180 block6b_bn False\n",
            "181 block6b_activation False\n",
            "182 block6b_se_squeeze False\n",
            "183 block6b_se_reshape False\n",
            "184 block6b_se_reduce False\n",
            "185 block6b_se_expand False\n",
            "186 block6b_se_excite False\n",
            "187 block6b_project_conv False\n",
            "188 block6b_project_bn False\n",
            "189 block6b_drop False\n",
            "190 block6b_add False\n",
            "191 block6c_expand_conv False\n",
            "192 block6c_expand_bn False\n",
            "193 block6c_expand_activation False\n",
            "194 block6c_dwconv False\n",
            "195 block6c_bn False\n",
            "196 block6c_activation False\n",
            "197 block6c_se_squeeze False\n",
            "198 block6c_se_reshape False\n",
            "199 block6c_se_reduce False\n",
            "200 block6c_se_expand False\n",
            "201 block6c_se_excite False\n",
            "202 block6c_project_conv False\n",
            "203 block6c_project_bn False\n",
            "204 block6c_drop False\n",
            "205 block6c_add False\n",
            "206 block6d_expand_conv False\n",
            "207 block6d_expand_bn False\n",
            "208 block6d_expand_activation False\n",
            "209 block6d_dwconv False\n",
            "210 block6d_bn False\n",
            "211 block6d_activation False\n",
            "212 block6d_se_squeeze False\n",
            "213 block6d_se_reshape False\n",
            "214 block6d_se_reduce False\n",
            "215 block6d_se_expand False\n",
            "216 block6d_se_excite False\n",
            "217 block6d_project_conv False\n",
            "218 block6d_project_bn False\n",
            "219 block6d_drop False\n",
            "220 block6d_add False\n",
            "221 block7a_expand_conv False\n",
            "222 block7a_expand_bn False\n",
            "223 block7a_expand_activation False\n",
            "224 block7a_dwconv False\n",
            "225 block7a_bn False\n",
            "226 block7a_activation False\n",
            "227 block7a_se_squeeze True\n",
            "228 block7a_se_reshape True\n",
            "229 block7a_se_reduce True\n",
            "230 block7a_se_expand True\n",
            "231 block7a_se_excite True\n",
            "232 block7a_project_conv True\n",
            "233 block7a_project_bn True\n",
            "234 top_conv True\n",
            "235 top_bn True\n",
            "236 top_activation True\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "87Nf4mJn1Nin"
      },
      "source": [
        "Looking good! The last 10 layers are trainable (unfrozen).\n",
        "\n",
        "We've got one more step to do before we can begin fine-tuning.\n",
        "\n",
        "Do you remember what it is?\n",
        "\n",
        "I'll give you a hint. We just reloaded the weights to our model and what do we need to do every time we make a change to our models?\n",
        "\n",
        "Recompile them!\n",
        "\n",
        "This will be just as before."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "vOGsq2qNHBzc"
      },
      "source": [
        "# Compile\n",
        "model_2.compile(loss=\"categorical_crossentropy\",\n",
        "                optimizer=tf.keras.optimizers.Adam(lr=0.0001), # divide learning rate by 10 for fine-tuning\n",
        "                metrics=[\"accuracy\"])"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "1D4dafTl30Pe"
      },
      "source": [
        "Alright, time to fine-tune on all of the data!"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "SpZS_khtJaYx",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "ca084bf0-a840-4634-e649-ccf32d9b7dbe"
      },
      "source": [
        "# Continue to train and fine-tune the model to our data\n",
        "fine_tune_epochs = initial_epochs + 5\n",
        "\n",
        "history_fine_10_classes_full = model_2.fit(train_data_10_classes_full,\n",
        "                                           epochs=fine_tune_epochs,\n",
        "                                           initial_epoch=history_10_percent_data_aug.epoch[-1],\n",
        "                                           validation_data=test_data,\n",
        "                                           validation_steps=int(0.25 * len(test_data)),\n",
        "                                           callbacks=[create_tensorboard_callback(\"transfer_learning\", \"full_10_classes_fine_tune_last_10\")])"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Saving TensorBoard log files to: transfer_learning/full_10_classes_fine_tune_last_10/20210216-025031\n",
            "Epoch 5/10\n",
            "235/235 [==============================] - 49s 190ms/step - loss: 0.7943 - accuracy: 0.7513 - val_loss: 0.4029 - val_accuracy: 0.8635\n",
            "Epoch 6/10\n",
            "235/235 [==============================] - 51s 215ms/step - loss: 0.6391 - accuracy: 0.7913 - val_loss: 0.3668 - val_accuracy: 0.8882\n",
            "Epoch 7/10\n",
            "235/235 [==============================] - 47s 198ms/step - loss: 0.5564 - accuracy: 0.8220 - val_loss: 0.3237 - val_accuracy: 0.9013\n",
            "Epoch 8/10\n",
            "235/235 [==============================] - 46s 192ms/step - loss: 0.5030 - accuracy: 0.8394 - val_loss: 0.3390 - val_accuracy: 0.8832\n",
            "Epoch 9/10\n",
            "235/235 [==============================] - 45s 191ms/step - loss: 0.4611 - accuracy: 0.8479 - val_loss: 0.3099 - val_accuracy: 0.8980\n",
            "Epoch 10/10\n",
            "235/235 [==============================] - 43s 183ms/step - loss: 0.4507 - accuracy: 0.8557 - val_loss: 0.2903 - val_accuracy: 0.9161\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "0b-eZ2B935AC"
      },
      "source": [
        "> 🔑 **Note:** Training took longer per epoch, but that makes sense because we're using 10x more training data than before.\n",
        "\n",
        "Let's evaluate on all of the test data."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "zHEcLE3tRTlB",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "81300114-0fb9-4745-926d-f6c677dc0d3a"
      },
      "source": [
        "results_fine_tune_full_data = model_2.evaluate(test_data)\n",
        "results_fine_tune_full_data"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "79/79 [==============================] - 10s 118ms/step - loss: 0.3264 - accuracy: 0.8988\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "[0.32638612389564514, 0.8988000154495239]"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 71
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "PD17oZ-a4H84"
      },
      "source": [
        "Nice! It looks like fine-tuning with all of the data has given our model a boost, how do the training curves look?"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "QwxgAW_l5Meg",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 585
        },
        "outputId": "db323b5d-0698-42b3-8704-e51ae49f4f8e"
      },
      "source": [
        "# How did fine-tuning go with more data?\n",
        "compare_historys(original_history=history_10_percent_data_aug,\n",
        "                 new_history=history_fine_10_classes_full,\n",
        "                 initial_epochs=5)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "5\n",
            "11\n",
            "[0.3293333351612091, 0.6453333497047424, 0.7333333492279053, 0.7693333625793457, 0.7946666479110718, 0.7675999999046326, 0.8066666722297668, 0.8333333134651184, 0.8478666543960571, 0.8511999845504761, 0.8655999898910522]\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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QoP0ECmlfE9MTAxbtmwBYOHChYSHh/Pb3/7W+XplZSUBAfX/fUtLSyMtLe20+/j2229bJljA4XDwzjvvkJiYyNdff8306dNbbNuuTvW5vZX2qOtRU3yjt6dDUUqpFjNv3jxuueUWxo0bx91338369euZMGECI0eOZOLEiezcuROAr776igsvvBCwkvz8+fOZNm0affr04emnn3ZuLzw83Nl+2rRpXHHFFQwaNIhrrrkGYwwAK1asYNCgQYwePZrbb7/dud26vvrqK4YOHcqtt97K0qVLneuzsrK49NJLSUlJISUlxfnl4NVXX2XEiBGkpKRw3XXXOT/fW2+9VW98U6ZM4eKLL2bIkCEAXHLJJYwePZqhQ4eyaNEi53s+/vhjRo0aRUpKCmeddRYOh4P+/fuTnZ0NWF8o+vXr51xuC771taINZBWU8s7mg8wZ24uY8GBPh6OUagf++/2tbDtU0KLbHBIfyYMXDW3y+zIzM/n222/x9/enoKCA1atXExAQwMqVK/nd737H22+/fdJ7duzYwZdffklhYSEDBw7k1ltvPen2os2bN7N161bi4+OZNGkS33zzDWlpadx8882sWrWK5ORk5syZ02BcS5cuZc6cOcycOZPf/e53VFRUEBgYyO23387UqVN55513qKqqoqioiK1bt/KHP/yBb7/9ltjYWPLy8k77uTdt2sRPP/3kvNp68eLFREdHU1JSwpgxY7j88stxOBwsWLDAGW9eXh5+fn5ce+21LFmyhDvuuIOVK1eSkpJCXFxcE49882mPuo7F1cU3JusEJ0qp9ufKK6/E398fgOPHj3PllVcybNgw7rzzTrZu3Vrvey644AKCg4OJjY2la9euZGVlndRm7Nix9OzZEz8/P1JTU8nIyGDHjh306dPHmRwbStTl5eWsWLGCSy65hMjISMaNG8cnn3wCwBdffMGtt94KgL+/P1FRUXzxxRdceeWVxMZa81tER0ef9nOPHTu21i1RTz/9NCkpKYwfP54DBw6wa9cu1q5dyxlnnOFsV73d+fPn8+qrrwJWgr/hhhtOu7+WpD1qFwWlFfxj7X7OH96DXjFafEMp1TKa0/NtLWFhYc7nDzzwANOnT+edd94hIyODadOm1fue4OCa0UV/f38qKyub1aYhn3zyCfn5+QwfPhyA4uJiOnXq1OAweUMCAgKcF6I5HI5aF825fu6vvvqKlStX8t133xEaGsq0adNOectUYmIi3bp144svvmD9+vUsWbKkSXG5S3vULpau209hWSU3n9HX06EopVSrO378OAkJCQC8/PLLLb79gQMHkp6eTkZGBgBvvPFGve2WLl3KCy+8QEZGBhkZGezdu5fPPvuM4uJizjrrLJ599lkAqqqqOH78OGeeeSb//Oc/yc3NBXAOfSclJfH9998DsHz5cioqKurd3/Hjx+nSpQuhoaHs2LGDtWvXAjB+/HhWrVrF3r17a20X4MYbb+Taa6+tNSLRVjRR28oqq3hxzV4m9YtheE8tvqGUav/uvvtu7rvvPkaOHNmkHnBjderUib/97W/MmDGD0aNHExERQVRU7b+vxcXFfPzxx1xwwQXOdWFhYUyePJn333+fp556ii+//JLhw4czevRotm3bxtChQ/mv//ovpk6dSkpKCr/5zW8AWLBgAV9//TUpKSl89913tXrRrmbMmEFlZSWDBw/m3nvvZfz48QDExcWxaNEiLrvsMlJSUpg1a5bzPRdffDFFRUVtPuwNINVX5jXrzSIzgKcAf+AFY8xjDbS7HHgLGGOM2Xi67aalpZmNG0/brEW9ueEAd7/9A6/OH8sZA9ruIgHVMdzwsfWf+6UZL3k4EtVWtm/fzuDBgz0dhscVFRURHh6OMYZf/epX9O/fnzvvvNPTYTXZxo0bufPOO1m9erXb26rvd0NEvjfG1HtPXLN71CLiDzwDnAcMAeaIyJB62kUA/wGsa+6+WpvDYXhu1R6G9IhkSn8tvqGUUi3l+eefJzU1laFDh3L8+HFuvvlmT4fUZI899hiXX345jz76qEf2787Q91hgtzEm3RhTDiwDZtbT7mHgj4DXlpD5fMdR9mSf4OapfXTKP6WUakF33nknW7ZsYdu2bSxZsoTQUN+7UPfee+9l3759TJ482SP7dydRJwAHXJYz7XVOIjIKSDTGfOjGflrdc1/vIaFzJy4Y3sPToSillFK1tNrFZCLiBzwB/Gcj298kIhtFZGNbzviyMSOPjfuOsWBKshbfUEop5XXcyUwHgUSX5Z72umoRwDDgKxHJAMYDy0Wk3pPlxphFxpg0Y0xaW8748tyqdDqHBnLVmMTTN1ZKKaXamDuJegPQX0SSRSQImA0sr37RGHPcGBNrjEkyxiQBa4GLG3PVd1vZfbSIz7Zlcf2EJC2+oZRSyis1O1EbYyqBXwOfANuBN40xW0XkIRG5uKUCbE3Pr0onOMCPuVp8QynVzkyfPt05DWe1J5980jkdZ32mTZtG9a2x559/Pvn5+Se1WbhwIY8//vgp9/3uu++ybds25/Lvf/97Vq5c2ZTwT6mjlcN066SsMWaFMWaAMaavMeYRe93vjTHL62k7zZt609XFN65KS9TiG0qpdmfOnDksW7as1rply5adsjCGqxUrVtC5c+dm7btuon7ooYc4++yzm7WtuuqWw2wtrTEBTHN12KunXvomg0qHgxunJJ++sVJK+ZgrrriCDz/80DnfdUZGBocOHWLKlCnceuutpKWlMXToUB588MF635+UlEROTg4AjzzyCAMGDGDy5MnOUphg3SM9ZswYUlJSuPzyyykuLubbb79l+fLl3HXXXaSmprJnz55a5Sc///xzRo4cyfDhw5k/fz5lZWXO/T344IOMGjWK4cOHs2PHjnrj6ojlMDvkidnC0gqWrN3HecN70Dum/inmlFKqxXx0Lxz5sWW32X04nFfvZJCAVflp7NixfPTRR8ycOZNly5Zx1VVXISI88sgjREdHU1VVxVlnncUPP/zAiBEj6t3O999/z7Jly9iyZQuVlZWMGjWK0aNHA3DZZZexYMECAO6//35efPFFbrvtNi6++GIuvPBCrrjiilrbKi0tZd68eXz++ecMGDCA66+/nmeffZY77rgDgNjYWDZt2sTf/vY3Hn/8cV544YWT4umI5TA7ZI/6H87iG1rKUinVfrkOf7sOe7/55puMGjWKkSNHsnXr1lrD1HWtXr2aSy+9lNDQUCIjI7n44ppLkH766SemTJnC8OHDWbJkSYNlMqvt3LmT5ORkBgwYAMDcuXNZtWqV8/XLLrsMgNGjRzsLebjqqOUwO1yPuqyyisXf7GVi3xhG9Gze+RellGqSU/R8W9PMmTO588472bRpE8XFxYwePZq9e/fy+OOPs2HDBrp06cK8efNOWeLxVObNm8e7775LSkoKL7/8Ml999ZVb8VaXymyoTGZHLYfZ4XrU7205RFZBGTdP1VKWSqn2LTw8nOnTpzN//nxnb7qgoICwsDCioqLIysrio48+OuU2zjjjDN59911KSkooLCzk/fffd75WWFhIjx49qKioqJWUIiIiKCwsPGlbAwcOJCMjg927dwPw2muvMXXq1EZ/no5a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KRfYemwrW49tdXcZStXK0aNHSUxMJDExkTZt2tCuXbvy6cLCwmq3XbVqFdOnT6/xGOecc45Tav3xxx8ZO3asU/blqfQctVJKqdO0bt2alJQUAB5//HGCg4O57777ypcXFxfj7V15fCQlJZGUlFTjMZYvX+6cYlsAbVErpZSq0dSpU7n99tsZMmQIDzzwACtWrGDo0KEMGDCAc845h23btgGnt3Aff/xxbrzxRpKTk+ncuTMzZ84s319wcHD5+snJyYwfP56ePXsyadIkykZ1XLhwIT179mTQoEFMnz69Ti3n2bNn069fP/r27cuDDz4IQElJCVOnTqVv377069ePF198EYCZM2fSu3dvEhISuO666xr+YzmZtqiVUkrVSmpqKsuXL8dms3HixAmWLl2Kt7c333//PX/961/59NNPz9hm69atLF68mOzsbHr06MEdd9xxxq1Ja9euZdOmTbRt25Zhw4bx888/k5SUxG233caSJUuIj49n4sSJta7z4MGDPPjgg6xevZrw8HBGjRrFF198QYcOHThw4AAbN24EIDMzE4AZM2awe/du/Pz8yud5khqDWkQ6AP8GYgADzDLGvFxhHQFeBi4F8oCpxpg19mVTgIftqz5ljHnfeeUrpVTz9rf5m9h88IRT99m7bSiPXdanzttdc8012Gw2ALKyspgyZQrbt29HRCgqKqp0mzFjxuDn54efnx/R0dEcPnyY9u3bn7bO4MGDy+clJiayZ88egoOD6dy5c/ltTBMnTmTWrFm1qnPlypUkJycTFWWNcTFp0iSWLFnCI488wq5du7j77rsZM2YMo0aNAiAhIYFJkyZxxRVXcMUVV9T5d2lsten6LgbuNcb0Bs4G7hSR3hXWuQToZn/dCrwOICIRwGPAEGAw8JiIhDupdqWUUi4UFBRU/vmRRx5hxIgRbNy4kfnz51d5y5Gfn1/5Z5vNRnFxcb3WcYbw8HDWrVtHcnIyb7zxBjfffDMAX331FXfeeSdr1qzhrLPOarTj11eNLWpjTBqQZv+cLSJbgHbAZofVxgH/NtaJhV9FJExEYoFk4DtjzDEAEfkOGA3Mduq3UEqpZqo+LV9XyMrKol27dgC89957Tt9/jx492LVrF3v27CEuLo6PPvqo1tsOHjyY6dOnk5GRQXh4OLNnz+buu+8mIyMDX19frr76anr06MHkyZMpLS1l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\n",
            "text/plain": [
              "<Figure size 576x576 with 2 Axes>"
            ]
          },
          "metadata": {
            "tags": [],
            "needs_background": "light"
          }
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "MZvQ-7v55RVR"
      },
      "source": [
        "Looks like that extra data helped! Those curves are looking great. And if we trained for longer, they might even keep improving."
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "rvElXran4brJ"
      },
      "source": [
        "## Viewing our experiment data on TensorBoard\n",
        "\n",
        "Right now our experimental results are scattered all throughout our notebook. If we want to share them with someone, they'd be getting a bunch of different graphs and metrics... not a fun time.\n",
        "\n",
        "But guess what?\n",
        "\n",
        "Thanks to the TensorBoard callback we made with our helper function `create_tensorflow_callback()`, we've been tracking our modelling experiments the whole time.\n",
        "\n",
        "How about we upload them to TensorBoard.dev and check them out?\n",
        "\n",
        "We can do with the `tensorboard dev upload` command and passing it the directory where our experiments have been logged.\n",
        "\n",
        "> 🔑 **Note:** Remember, whatever you upload to TensorBoard.dev becomes public. If there are training logs you don't want to share, don't upload them."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "u_OCtijuI7gv",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 262
        },
        "outputId": "8c0e4120-e6ed-43ef-e438-26681e8a27cc"
      },
      "source": [
        "# View tensorboard logs of transfer learning modelling experiments (should be 4 models)\n",
        "# Upload TensorBoard dev records\n",
        "!tensorboard dev upload --logdir ./transfer_learning \\\n",
        "  --name \"Transfer learning experiments\" \\\n",
        "  --description \"A series of different transfer learning experiments with varying amounts of data and fine-tuning\" \\\n",
        "  --one_shot # exits the uploader when upload has finished"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "2020-09-17 22:51:36.043126: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcudart.so.10.1\n",
            "Data for the \"graphs\" plugin is now uploaded to TensorBoard.dev! Note that uploaded data is public. If you do not want to upload data for this plugin, use the \"--plugins\" command line argument.\n",
            "Data for the \"histograms\" plugin is now uploaded to TensorBoard.dev! Note that uploaded data is public. If you do not want to upload data for this plugin, use the \"--plugins\" command line argument.\n",
            "Data for the \"hparams\" plugin is now uploaded to TensorBoard.dev! Note that uploaded data is public. If you do not want to upload data for this plugin, use the \"--plugins\" command line argument.\n",
            "Upload started and will continue reading any new data as it's added\n",
            "to the logdir. To stop uploading, press Ctrl-C.\n",
            "\n",
            "View your TensorBoard live at: https://tensorboard.dev/experiment/2O76kw3PQbKl0lByfg5B4w/\n",
            "\n",
            "\u001b[1m[2020-09-17T22:51:37]\u001b[0m Uploader started.\n",
            "\u001b[1m[2020-09-17T22:51:47]\u001b[0m Total uploaded: 128 scalars, 0 tensors, 5 binary objects (9.1 MB)\n",
            "\u001b[2K\u001b[33mListening for new data in logdir...\u001b[0m\n",
            "Done. View your TensorBoard at https://tensorboard.dev/experiment/2O76kw3PQbKl0lByfg5B4w/\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "fHrA0duU6txY"
      },
      "source": [
        "Once we've uploaded the results to TensorBoard.dev we get a shareable link we can use to view and compare our experiments and share our results with others if needed.\n",
        "\n",
        "You can view the original versions of the experiments we ran in this notebook here: https://tensorboard.dev/experiment/2O76kw3PQbKl0lByfg5B4w/\n",
        "\n",
        "> 🤔 **Question:** Which model performed the best? Why do you think this is? How did fine-tuning go?\n",
        "\n",
        "To find all of your previous TensorBoard.dev experiments using the command `tensorboard dev list`."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "dy4FuwhrLKzr",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 504
        },
        "outputId": "b97e1f31-912f-4dfe-f66a-e415be5301d7"
      },
      "source": [
        "# View previous experiments\n",
        "!tensorboard dev list"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "2020-09-17 22:51:48.747476: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcudart.so.10.1\n",
            "Data for the \"graphs\" plugin is now uploaded to TensorBoard.dev! Note that uploaded data is public. If you do not want to upload data for this plugin, use the \"--plugins\" command line argument.\n",
            "Data for the \"histograms\" plugin is now uploaded to TensorBoard.dev! Note that uploaded data is public. If you do not want to upload data for this plugin, use the \"--plugins\" command line argument.\n",
            "Data for the \"hparams\" plugin is now uploaded to TensorBoard.dev! Note that uploaded data is public. If you do not want to upload data for this plugin, use the \"--plugins\" command line argument.\n",
            "https://tensorboard.dev/experiment/2O76kw3PQbKl0lByfg5B4w/\n",
            "\tName                 Transfer learning experiments\n",
            "\tDescription          A series of different transfer learning experiments with varying amounts of data and fine-tuning\n",
            "\tId                   2O76kw3PQbKl0lByfg5B4w\n",
            "\tCreated              2020-09-17 22:51:37 (15 seconds ago)\n",
            "\tUpdated              2020-09-17 22:51:47 (5 seconds ago)\n",
            "\tRuns                 10\n",
            "\tTags                 3\n",
            "\tScalars              128\n",
            "\tTensor bytes         0\n",
            "\tBinary object bytes  9520961\n",
            "https://tensorboard.dev/experiment/73taSKxXQeGPQsNBcVvY3g/\n",
            "\tName                 EfficientNetB0 vs. ResNet50V2\n",
            "\tDescription          Comparing two different TF Hub feature extraction models architectures using 10% of training images\n",
            "\tId                   73taSKxXQeGPQsNBcVvY3g\n",
            "\tCreated              2020-09-14 05:02:48\n",
            "\tUpdated              2020-09-14 05:02:50\n",
            "\tRuns                 4\n",
            "\tTags                 3\n",
            "\tScalars              40\n",
            "\tTensor bytes         0\n",
            "\tBinary object bytes  3402042\n",
            "Total: 2 experiment(s)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "icXKqZkn7HRA"
      },
      "source": [
        "And if you want to remove a previous experiment (and delete it from public viewing) you can use the command:\n",
        "\n",
        "```\n",
        "tensorboard dev delete --experiment_id [INSERT_EXPERIMENT_ID_TO_DELETE]```"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "a4zeQFbF9XLm",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 124
        },
        "outputId": "3fd10503-23d8-4433-9683-30feda49dba1"
      },
      "source": [
        "# Remove previous experiments\n",
        "# !tensorboard dev delete --experiment_id OUbW0O3pRqqQgAphVBxi8Q"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "2020-09-17 22:51:53.982454: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcudart.so.10.1\n",
            "Data for the \"graphs\" plugin is now uploaded to TensorBoard.dev! Note that uploaded data is public. If you do not want to upload data for this plugin, use the \"--plugins\" command line argument.\n",
            "Data for the \"histograms\" plugin is now uploaded to TensorBoard.dev! Note that uploaded data is public. If you do not want to upload data for this plugin, use the \"--plugins\" command line argument.\n",
            "Data for the \"hparams\" plugin is now uploaded to TensorBoard.dev! Note that uploaded data is public. If you do not want to upload data for this plugin, use the \"--plugins\" command line argument.\n",
            "No such experiment OUbW0O3pRqqQgAphVBxi8Q. Either it never existed or it has already been deleted.\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "P76rEQjPdR8m"
      },
      "source": [
        "## 🛠 Exercises\n",
        "\n",
        "1. Write a function to visualize an image from any dataset (train or test file) and any class (e.g. \"steak\", \"pizza\"... etc), visualize it and make a prediction on it using a trained model.\n",
        "2. Use feature-extraction to train a transfer learning model on 10% of the Food Vision data for 10 epochs using [`tf.keras.applications.EfficientNetB0`](https://www.tensorflow.org/api_docs/python/tf/keras/applications/EfficientNetB0) as the base model. Use the [`ModelCheckpoint`](https://www.tensorflow.org/api_docs/python/tf/keras/callbacks/ModelCheckpoint) callback to save the weights to file.\n",
        "3. Fine-tune the last 20 layers of the base model you trained in 2 for another 10 epochs. How did it go?\n",
        "4. Fine-tune the last 30 layers of the base model you trained in 2 for another 10 epochs. How did it go?"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "AvwXqey-dhpT"
      },
      "source": [
        "## 📖 Extra-curriculum\n",
        "\n",
        "* Read the [documentation on data augmentation](https://www.tensorflow.org/tutorials/images/data_augmentation) in TensorFlow.\n",
        "* Read the [ULMFit paper](https://arxiv.org/abs/1801.06146) (technical) for an introduction to the concept of freezing and unfreezing different layers.\n",
        "* Read up on learning rate scheduling (there's a [TensorFlow callback](https://www.tensorflow.org/api_docs/python/tf/keras/callbacks/LearningRateScheduler) for this), how could this influence our model training?\n",
        "  * If you're training for longer, you probably want to reduce the learning rate as you go... the closer you get to the bottom of the hill, the smaller steps you want to take. Imagine it like finding a coin at the bottom of your couch. In the beginning your arm movements are going to be large and the closer you get, the smaller your movements become."
      ]
    }
  ]
}
